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

53
我想知道如何将一个较长的字符串拆分成一系列较短的子字符串或单词。 例如:
我想把句子“我想遛狗。”拆分成字符串:“I”,另一个字符串:“want”等。
我该怎么做?

4
请展示一下你尝试过什么(例如,你是否在String文档中查找了“split”一词的信息?) - Jon Skeet
11
是的,String#split() 的命名非常模糊不清 :-P - maksimov
15个回答

1

使用split()函数

String words[] = stringInstance.split(" ");

1
请跟随答案中的链接。 - jmj

1
StringTokenizer separate = new StringTokenizer(s, " ");
String word = separate.nextToken();
System.out.println(word);

0
class test{
           
    public static void main(String[] args){
                StringTokenizer st= new StringTokenizer("I want to walk my dog.");
                
                while (st.hasMoreTokens())
                    System.out.println(st.nextToken());
         
            }
        }

0
使用Java Stream API:
String sentence = "I want to walk my dog.";

Arrays.stream(sentence.split(" ")).forEach(System.out::println);

输出:

I
want
to
walk
my
dog.

或者

String sentence2 = "I want to walk my dog.";

Arrays.stream(sentence2.split(" ")).map(str -> str.replace(".", "")).forEach(System.out::println);

输出:

I
want
to
walk
my
dog

-1
String[] str = s.split("[^a-zA-Z]+");

自行编写的模式匹配通常不是最好的选择;请使用已有解决方案,这些方案已经考虑了你在编写时没有想到的所有奇怪角落情况。另外,作为一个经验法则,在这里我宁愿使用空格字符的白名单,而不是尝试匹配单词,因为你可能会错过 umlauts 等字符。 - Cherusker

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