与えられた文を単語ごとにトラバースするにはどうすればよいでしょうか? Javaに組み込み関数はありますか? どうやって始めたらいいのかわからない。
11 に答える
このようなもの:
String sentence = "Your sentence here.";
String[] words = sentence.split("\\s+"); // splits by whitespace
for (String word : words) {
System.out.println(word);
}
多くの人がスペースで区切ることを提案していますが、この文にもコンマなどが含まれています。句読点も分割します。
String words = sentence.split("([\\s.,;:\"?!,.…(){}[\\]%#/]|(- )|( -))+");
この正規表現は、合理的に予想されるすべての句読点で分割されます。単語内のハイフンとアポストロフィは「句読点」ではないことに注意してください。それらは単語の一部です。
このアプローチ、または同様のアプローチは、英語以外の文字の文も処理します。
String s="sfgasdfg jhsadfkjashfd sajdfhjkasdfh hjskafhasj";
String wordArray[] =s.split("\\s+");
for(String sT :wordArray)
{
System.out.println(st);
}
こちらの String Split 関数をご覧ください http://www.tek-tips.com/viewthread.cfm?qid=1167964
既に文が文字列として保存されていると仮定すると、String.replaceAll("[./,]"," ")
メソッドを使用してストップ ワードを削除し、 を使用String.split("\\s+")
してフレーズを構成する個々の単語を取得できます。
String[] array = input.split(" ");
そうすれば、文字列はスペースで区切られた配列に変換され (split() の引数でセパレーターを変更できます)、必要に応じて配列をループできます。
StringTokenizer
たとえばから始めるか、使用するString.split(" ")
文を空白文字で分割してみてください。
String sentence = "This is a sentence.";
for(String word: sentence.split("\\s+"){
System.out.println(word);
}
私は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
文字列を単語に分割する 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());
}
}
System.out.println(Arrays.toString(
"Many words//separated.by-different\tcharacters"
.split("\\W+")));
//[Many, words, separated, by, different, characters]