将字符串拆分为单个单词Java

fos*_*sho 41 java

我想知道如何将一个大字符串拆分成一系列较小的字符串或单词.例如:

我想遛狗.

我想要一个字符串:"I",另一个字符串:"want"

我该怎么做?

Kum*_*tra 73

使用split()方法

例如:

String s = "I want to walk my dog";
String[] arr = s.split(" ");    

for ( String ss : arr) {
    System.out.println(ss);
}
Run Code Online (Sandbox Code Playgroud)

  • 此方法不会从单词中删除逗号,点等. (22认同)

Ant*_*dor 57

作为一个更通用的解决方案(但仅限ASCII!),要包括单词之间的任何其他分隔符(如逗号和分号),我建议:

String s = "I want to walk my dog, cat, and tarantula; maybe even my tortoise.";
String[] words = s.split("\\W+");
Run Code Online (Sandbox Code Playgroud)

正则表达式意味着分隔符将是任何不是单词[\ W]的东西,在至少一个[+]的组中.因为[+]是贪婪的,所以需要例如';' 和''一起作为一个分隔符.

  • \\ W似乎只考虑ASCII字母字符.它不适用于带重音的语言. (5认同)

Pet*_*ete 26

正则表达式也可用于分割单词.

\w可用于匹配单词字符([A-Za-z0-9_]),以便从结果中删除标点符号:

String s = "I want to walk my dog, and why not?";
Pattern pattern = Pattern.compile("\\w+");
Matcher matcher = pattern.matcher(s);
while (matcher.find()) {
    System.out.println(matcher.group());
}
Run Code Online (Sandbox Code Playgroud)

输出:

I
want
to
walk
my
dog
and
why
not
Run Code Online (Sandbox Code Playgroud)

请参阅Java API文档 Pattern的


Pie*_*e C 8

如果您的短语包含突出的字符,请参阅我的其他答案:

String[] listeMots = phrase.split("\\P{L}+");
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案. (2认同)

Kao*_*Kao 5

另一种方法,使用StringTokenizer

String s = "I want to walk my dog";
StringTokenizer tokenizer = new StringTokenizer(s);

while(tokenizer.hasMoreTokens()) {
    System.out.println(tokenizer.nextToken());
}
Run Code Online (Sandbox Code Playgroud)