当前位置:  开发笔记 > 编程语言 > 正文

如何将带有任何空格字符的字符串拆分为分隔符?

如何解决《如何将带有任何空格字符的字符串拆分为分隔符?》经验,为你挑选了7个好方法。

什么正则表达式模式需要传递给java.lang.String.split()方法,使用所有空格字符('','\ t','\n'等)作为分隔符将String拆分为子串数组?



1> Henrik Paul..:

有些东西

myString.split("\\s+");

这将所有空格分组为分隔符.

所以,如果我有字符串:

"Hello[space][tab]World"

这应该产生字符串"Hello","World"并省略[space]和之间的空白空间[tab].

正如VonC指出的那样,反斜杠应该被转义,因为Java会首先尝试将字符串转义为特殊字符,然后发送进行解析.你想要的是文字"\s",这意味着,你需要通过"\\s".它可能会有点混乱.

\\s相当于[ \\t\\n\\x0B\\f\\r]


请注意,你需要`trim()`first:`trim().split("\\ s ++")` - 否则,例如拆分`abc`将首先发出两个空字符串.

2> glenatron..:

在大多数正则表达方言中,有一组方便的字符摘要可用于此类事情 - 这些都是值得记住的好方法:

\w - 匹配任何单词字符.

\W - 匹配任何非单词字符.

\s - 匹配任何空白字符.

\S - 匹配除空格字符之外的任何内容.

\d - 匹配任何数字.

\D - 匹配除数字之外的任何内容.

搜索"Regex Cheatsheets"应该会奖励你很多有用的摘要.


有用的链接:http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

3> Mike Manard..:

为了在Javascript中工作,我必须执行以下操作:

myString.split(/\s+/g)


这是在Javascript中.我也没注意:)
哎呀.我的错.也许这个答案仍然可以帮助其他一些人在寻找Javascript答案时偶然发现这个帖子.:-)

4> VonC..:

"\\ s +"应该可以解决问题


@Anarelle它至少重复一次空格字符捕获,尽可能多的时间:见[https://regex101.com/r/dT7wG9/1 ](https://regex101.com/r/dT7wG9/1)或[http://rick.measham.id.au/paste/explain.pl?regex=\s%2B](http://rick.measham.id.au/paste/explain.pl?regex=\s %2B)或[http://regexper.com/#^s%2B](http://regexper.com/#^s%2B)或[http://www.myezapp.com/apps/dev/正则表达式/ show.ws?正则表达式=\S +&ENV = env_java](http://www.myezapp.com/apps/dev/regexp/show.ws?regex=\s+&env=env_java)

5> 小智..:

你也可以拥有一个UniCode不间断空间xA0 ......

String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking



6> Arrow..:
String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");



7> 小智..:

Apache Commons Lang有一种方法可以将带有空格字符的字符串拆分为分隔符:

StringUtils.split("abc def")

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)

这可能比正则表达式更容易使用.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有