2017-06-23 7 views
1
package stringsplit; 

public class StringSplit { 

    public static void main(String[] args) { 
     String s = "hello world we are anonymous "; 
     String[] s3 = s.split("\\s",2); 
     for(String temp:s3){ 
      System.out.println(temp); 
     } 
    }   

} 

O/P:1つのスペース文字 がcompiler.Iによって発生した後正規表現

hello 
world we are anonymous 

上記のコードは二つの部分に私の文字列を分割し、その後を導入'\\ S +'はそう 2空白文字の後に分割するとして取得する

O/P:

hello world 
we are anonymous 

しかし、それはうまくいきませんでした。高度な指導をいただきありがとうございます。

+2

期待される出力とは何ですか? –

+0

[Split doc](https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String、%20int))、*を参照してください。 limitパラメータは、パターンが適用される回数を制御します。 "*あなたがしたいことではありません。 –

+0

@Thibaut B:それを得ました!ありがとう –

答えて

0

String s = "hello world we are anonymous "; 
s = s.replaceAll("\\s+", " ").trim();//----------------------------------------------(0) 
String s1 = s.substring(0, s.indexOf(" ", s.indexOf(" ") + 1));//--------------------(1) 
String s2 = s.substring(s.indexOf(" ", s.indexOf(" ") + 1) + 1, s.length() - 1);//---(2) 

(0)-JUSTを確認するために、結果に応じて、あなたは以下のこれらのものを使用することができます達成しようとしています
(1)0から2番目のスペースの最初の部分を取得
(2) - 2番目のスペースから文字列の最後までを取得


出力

hello world 
we are anonymous 
1

javadocによると、split(regex)split(regex, limit)は期待どおりの動作をします。あなたはString::indexofを使用して、あなたの問題を解決することができます

String s = "hello world we are anonymous"; 
String[] s1 = s.split("\\s",2); //result is ["Hello", " world we are anonymous"] 
String[] s2 = s.split("\\s+",2); //result is ["Hello", "world we are anonymous"] 
String[] s3 = s.split("\\s+",3); //result is ["Hello", "world", "we are anonymous"] 
String[] s4 = s.split("\\s+"); //result is ["Hello", "world", "we", "are", "anonymous"] 
+0

私はopがこの質問を再度チェックし、私の答えをチェックしてほしいと思っていません:) –

+1

Perfect.Evenあなたが '+'の答えを削除しても同じです。 –

0

あなたとのスプリットでそれを達成することはできませんのでSplit docは、を「limitパラメータはパターンが適用される回数を制御」をお読みください。
ですから、2つのスペースの後に分割したい場合は、あなたが書く必要があります:

String s = "hello world we are anonymous "; 
int firstSpace = s.indexOf(' ')+1; 
int secondSpace = s.indexOf(' ', firstSpace)+1; 
String part1 = s.substring(0, secondSpace); 
String part2 = s.substring(secondSpace, s.length()); 
System.out.println(part1); // return "hello world" 
System.out.println(part2); // return "we are anonymous " 
+0

それは働いた!ありがとう –