2

如何逐字遍历任何给定的句子?java中有内置函数吗?我不知道如何开始。

4

11 回答 11

7

像这样的东西:

String sentence = "Your sentence here.";
String[] words = sentence.split("\\s+"); // splits by whitespace
for (String word : words) {
    System.out.println(word);
}
于 2012-11-20T10:26:05.853 回答
2

很多人建议按空格分割,但即使是这句话也包含逗号等。你应该分割的不仅仅是空格;也分割标点符号:

String words = sentence.split("([\\s.,;:\"?!,.…(){}[\\]%#/]|(- )|( -))+");

此正则表达式拆分所有合理预期的标点符号。请注意,单词中的连字符和撇号不是“标点符号”;它们是这个词的一部分。

这种方法或类似的方法也将处理非英语字符句子。

于 2012-11-20T10:51:35.080 回答
1
String[] array = input.split(" ");

这样,字符串就被转换成一个由空格分隔的数组(您可以更改 split() 的参数中的分隔符),然后您可以根据需要循环遍历该数组。

于 2012-11-20T10:25:49.170 回答
1

StringTokenizer例如开始或使用String.split(" ")

于 2012-11-20T10:25:54.180 回答
1

尝试按空格字符拆分句子。

String sentence = "This is a sentence.";

for(String word: sentence.split("\\s+"){
  System.out.println(word);
}
于 2012-11-20T10:25:56.833 回答
1
String s="sfgasdfg  jhsadfkjashfd sajdfhjkasdfh hjskafhasj";
String wordArray[] =s.split("\\s+");
for(String sT :wordArray)
{
System.out.println(st);
}
于 2012-11-20T10:26:36.503 回答
1

看看这里的字符串拆分功能http://www.tek-tips.com/viewthread.cfm?qid=1167964

于 2012-11-20T10:26:58.093 回答
1

假设您已经将句子存储为字符串,您可以使用该String.replaceAll("[./,]"," ")方法删除停用词,然后使用String.split("\\s+")获取组成短语的各个单词。

于 2012-11-20T10:27:28.980 回答
0

我会说StringTokenizer可能会帮助你。

        String str = "This is String , split by StringTokenizer, created by mkyong";
        StringTokenizer st = new StringTokenizer(str);

        System.out.println("---- Split by space ------");
        while (st.hasMoreElements()) {
            System.out.println(st.nextElement());
        }

        System.out.println("---- Split by comma ',' ------");
        StringTokenizer st2 = new StringTokenizer(str, ",");

        while (st2.hasMoreElements()) {
            System.out.println(st2.nextElement());
        }

String.split()可以帮助您:

     String[] result = "this is a test".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);

输出:

this
 is
 a
 test
于 2012-11-20T10:28:39.540 回答
0

您可以使用 StringTokenizer 类,它将字符串分成单词。

      public static void main(String ae[]){
    String st = "This is Java";
    StringTokenizer str= new StringTokenizer(st);
    while(str.hasMoreTokens()){
        System.out.println(str.nextToken());
    }
}
于 2012-11-20T10:29:46.567 回答
-1
System.out.println(Arrays.toString(
    "Many words//separated.by-different\tcharacters"
        .split("\\W+")));
//[Many, words, separated, by, different, characters]
于 2012-11-20T10:51:39.930 回答