大きな文字列を一連の小さな文字列または単語に分割する方法を知りたいです。例えば:
犬の散歩をしたい。
string: "I"
、別の string:"want"
などが必要です。
どうすればいいですか?
大きな文字列を一連の小さな文字列または単語に分割する方法を知りたいです。例えば:
犬の散歩をしたい。
string: "I"
、別の string:"want"
などが必要です。
どうすればいいですか?
使用split()
方法
例えば:
String s = "I want to walk my dog";
String[] arr = s.split(" ");
for ( String ss : arr) {
System.out.println(ss);
}
より一般的な解決策として (ただし ASCII のみ!)、単語間に他の区切り文字 (コンマやセミコロンなど) を含めるには、次のことをお勧めします。
String s = "I want to walk my dog, cat, and tarantula; maybe even my tortoise.";
String[] words = s.split("\\W+");
正規表現は、区切り文字が [\W] 以外の単語であり、少なくとも 1 つの [+] のグループであることを意味します。[+] は貪欲なので、たとえば ';' がかかります。と ' ' を 1 つの区切り文字として一緒に使用します。
正規表現を使用して単語を分割することもできます。
\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());
}
出力:
I
want
to
walk
my
dog
and
why
not
パターンの Java API ドキュメントを参照してください
フレーズに強調文字が含まれている場合は、他の回答を参照してください。
String[] listeMots = phrase.split("\\P{L}+");
StringTokenizerを使用したさらに別の方法:
String s = "I want to walk my dog";
StringTokenizer tokenizer = new StringTokenizer(s);
while(tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
split(" ")
クラスのメソッドを使用してString
、各単語を以下のコードとして取得できます。
String s = "I want to walk my dog";
String []strArray=s.split(" ");
for(int i=0; i<strArray.length;i++) {
System.out.println(strArray[i]);
}
使用するsplit()
String words[] = stringInstance.split(" ");