2016-05-20 38 views
1

に格納します。分割文字列と以下のように、私は言葉の文字列を持っているリスト

String words = "disaster kill people action scary seriously world murder loose world"; 

今、私はそれが何かを生成するように、すべての2つの単語を分割し、リストにそれらを保存したいですlike:

[disaster kill, people action, scary seriously,...] 

私のコードの問題は、スペースに遭遇するたびに分割されることです。それが唯一の各単語の後にスペースを維持し、すべての第二のスペースに遭遇した場合にのみ、リストに追加されますように、どのように私はそれを修正しない)

マイコード:

ArrayList<String> wordArrayList = new ArrayList<String>(); 
    for(String word : joined.split(" ")) { 
     wordArrayList.add(word); 
    } 

感謝。

+1

あなたは[ 'のstring.Splitを(文字列の正規表現)']を使用してみました(https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split- java.lang.String-)? – Turing85

+1

OK ... 'words.split("(?<!¥¥G¥¥S +)¥¥s ");'のようなものを使うことができます。私はこれを前に使ったことがあります...それはよくテストされています。 –

答えて

1

この正規表現は、(?<!\\G\\S+)\\sを使用してください。

証明:

String words = "disaster kill people action scary seriously world murder loose world"; 
String[] result = words.split("(?<!\\G\\S+)\\s"); 

System.out.printf("%s%n", Arrays.toString(result)); 

そして結果:

[disaster kill, people action, scary seriously, world murder, loose world] 
1

あなたのループでは、各単語が正しいArrayList<String>が残っていますか?あなたが今行う必要があるのは、そのリストを繰り返して、単語を2つのセットで一緒に組み合わせることだけです。

ArrayList<String> finalList = new ArrayList<String>(); 
for (int i = 0; i < wordArrayList.Size(); i+=2) { 

if (i + 1 < wordArrayList.Size() 
    finalList.add(wordArrayList.get(i) + " " + wordArrayList.get(i + 1); 

} 

これはスプリットワードを取り出し、希望の出力に見えるようにスペースでリストに追加する必要があります。

0

私は 'n' の言葉の後に文字列を分割するために探していました。 私は上記の解決策を変更します。

private void spiltParagraph(int splitAfterWords, String someLargeText) { 
     String[] para = someLargeText.split(" "); 
     ArrayList<String> data = new ArrayList<>(); 
     for (int i = 0; i < para.length; i += splitAfterWords) { 
      if (i + (splitAfterWords - 1) < para.length) { 
       StringBuilder compiledString = new StringBuilder(); 
       for (int f = i; f <= i + (splitAfterWords - 1); f++) { 
        compiledString.append(para[f] + " "); 
       } 
       data.add(compiledString.toString()); 
      } 
     } 
    } 
関連する問題