2016-09-20 7 views
1

以下の2つの例を見てください。どのように2番目のものも4を印刷することを確認するには?最後の空の要素を数えないString.split

String s="a|b|c|d" 
println(s.split("\\|").length) 
//prints 4 

s="a|b||"​​​​​​​​​​​​ 
println(s.split("\\|").length)​ 
//prints 2 
+0

のStringUtilsが合法的である場合に行うのprintln(StringUtils.countOccurrencesOf(S、 "\\ |")+ 1); –

+0

なぜこれがダウン投票されたのか分かりますか? –

答えて

2

は、空のトークンを保つ限度とスプリットを使用するには= -1

println(s.split("\\|", -1).length)​ 
-2

分割するときにnull値を持つことはできません。したがって、次のコードが動作します。

int counter = 0; 
    for(int i = 0 ; i < s.length();i++) 
    { 
     if(s.charAt(i) == '|') 
     { 
      counter++; 

     } 
    } 
    System.out.println(counter); 
+0

と3 |それは質問が4を望んでいるときに3とは言いませんか?より良いintカウンタ= 1? –

+1

質問は 'String.split'に関連し、文字列中の' | '文字の数は数えません。 –

関連する問題