2016-11-01 12 views
0

私は、この文字列に分割しようとしています:スペースを無視して文字列を分割する方法は?

  1. send
  2. hi how are you

"send#hi how are you"をしてから

  1. hi
  2. how"hi how are you"を分割

    text[0] = "send#hi how are you"; 
    String[] one = text[0].split("#"); 
    String[] two = text[0].split("#")[1].split("\\s#"); 
    

    "send#hi how are you"を分割、それは私だけを与える "こんにちは" "送信" と...

    どのように変更することができます:私の試みは

    you

  • are
  • 私のコードので、それは動作しますか?あなたは何の前だと何ポンドの後だの両方をしたいならば

    String x = "send#hi how are you"; 
    x = x.substring(x.indexOf("#")+1, x.length()); 
    String[] splitUp = x.split(" "); 
    

    :ここ

  • +0

    '' \\ s + "'ではなく '' \\ s "'です。 –

    答えて

    0

    を使用すると、シャープ記号の前に言葉を望んでいないと仮定して、動作するはずのコードです

    String x = "send#hi how are you"; 
    String before = x.substring(0, x.charAt("#")); 
    String after = x.substring(x.charAt("#")+1, x.length()); 
    String[] splitUp = after.split(" "); 
    
    -に分割

    String x = "send#hi how are you"; 
    String[] pieces = x.split("#"); 
    //at this point pieces[0] will be the word before the pound and pieces[1] what is after 
    String[] after = pieces[1].split(" "); 
    

    最後の注意:

    そして、ここでは、第二を行う別の方法ですはそれを行う1つの方法ですが、"\\s"で分割することは、基本的にregexを使用して同じことです。これはより信頼性が高い場合があります。

    0

    分割されたテキスト(この場合は"#")は、であり、分割によってが消費されます。つまり、結果の文字列のいずれにも保持されません。あなたが軌道に乗るために

    最小の編集は変更することです:

    String[] two = text[0].split("#")[1].split("\\s#"); 
    

    へ:

    String[] two = text[0].split("#")[1].split("\\s"); 
    //            ^--- remove the # 
    
    0

    私はこの方法でそれを行うだろう:

    import java.util.regex.Matcher; 
    import java.util.regex.Pattern; 
    
    String str = "send#hi how are you"; 
    Pattern p = Pattern.compile("([^#]+)#(.*)"); 
    Matcher m = p.matcher(str); 
    
    if (m.find()) { 
        String first = m.group(1); 
        String[] second = m.group(2).split("\\s+"); 
    
        System.out.println(first); 
        System.out.println(java.util.Arrays.asList(second)); 
    } 
    

    たりしたい場合は最も簡単な方法:

    String str = "send#hi how are you"; 
    
    String[] parts = str.split("#", 2); 
    String first = parts[0]; 
    String[] second = parts[1].split("\\s+"); 
    
    System.out.println(first); 
    System.out.println(Arrays.asList(second)); 
    
    関連する問題