50

大きな文字列を一連の小さな文字列または単語に分割する方法を知りたいです。例えば:

犬の散歩をしたい。

string: "I"、別の string:"want"などが必要です。

どうすればいいですか?

4

14 に答える 14

83

使用split()方法

例えば:

String s = "I want to walk my dog";
String[] arr = s.split(" ");    

for ( String ss : arr) {
    System.out.println(ss);
}
于 2012-07-30T16:54:29.857 に答える
69

より一般的な解決策として (ただし ASCII のみ!)、単語間に他の区切り文字 (コンマやセミコロンなど) を含めるには、次のことをお勧めします。

String s = "I want to walk my dog, cat, and tarantula; maybe even my tortoise.";
String[] words = s.split("\\W+");

正規表現は、区切り文字が [\W] 以外の単語であり、少なくとも 1 つの [+] のグループであることを意味します。[+] は貪欲なので、たとえば ';' がかかります。と ' ' を 1 つの区切り文字として一緒に使用します。

于 2015-07-28T11:26:07.923 に答える
30

正規表現を使用して単語を分割することもできます。

\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 ドキュメントを参照してください

于 2015-01-31T22:12:26.377 に答える
11

フレーズに強調文字が含まれている場合は、他の回答を参照してください。

String[] listeMots = phrase.split("\\P{L}+");
于 2016-11-04T02:37:19.073 に答える
5

StringTokenizerを使用したさらに別の方法:

String s = "I want to walk my dog";
StringTokenizer tokenizer = new StringTokenizer(s);

while(tokenizer.hasMoreTokens()) {
    System.out.println(tokenizer.nextToken());
}
于 2014-09-10T08:57:12.103 に答える
2

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]);
}
于 2014-07-19T17:54:35.593 に答える
1

使用するsplit()

String words[] = stringInstance.split(" ");
于 2012-07-30T16:53:25.163 に答える