将字符串拆分为字符串数组

23

我正在尝试找到一种将字符串拆分为字符串数组的方法,并且需要在遇到空格时拆分,例如:

 

"hi i'm paul"

拆分为:

 

"hi" "i'm" "paul"

如何在使用正则表达式的split()方法中表示空格?


11
为什么需要正则表达式呢?难道不能只使用String[] myList = myString.split(" ");吗? - Mohamed Nuur
1
有一个名为Visual REGEXP的工具(http://laurent.riesterer.free.fr/regexp/),它可以帮助您可视化正则表达式的结果(Perl正则表达式,但几乎所有语言都使用Perl正则表达式,所以这不是问题)。 - Johan
1
“我对正则表达式还不是很了解” - 听起来你需要解决这个问题,因为让别人为你编写正则表达式并不可持续。 - Stephen C
2个回答

54

你需要一个正则表达式,如"\\s+",它的意思是:在遇到至少一个空格时拆分。完整的Java代码如下:

try {
    String[] splitArray = input.split("\\s+");
} catch (PatternSyntaxException ex) {
    // 
}

1
@Gabe:我不这么认为。他想要的是除了空格以外的任何东西。例如,他希望“i'm”中的撇号与i和m保持在一起。 - Staffan Nöteberg
哎呀,我的意思是 \s+!(就像你现在的样子) - Gabe

7

String[] result = "hi i'm paul".split("\\s+");这段代码是用来将字符串以一个或多个空格作为分隔符进行分割。

或者你也可以看一下Apache Common StringUtils。它有一个StringUtils.split(String str)方法,可以使用空格作为分隔符来拆分字符串。它还有其他实用的工具方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接