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 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

こちらの String Split 関数をご覧ください 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 に答える
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 に答える
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 に答える