2016-07-07 11 views
0

空白を含む入力文字列を分割しようとしていますが、分割から切り捨てることは望ましくありません。分割配列に含める必要があります。この場合、より良い正規表現や方法がありますか?空白で表されるnull値を含む分割文字列

String data = "1  a1 b1 r5"; 
String splitData = data.split("\\s+"); 
for(String x : splitData){ 
    System.out.print(x + ", "); 
} 

Expected output: 1, , , , , ,a1, b1, , r5 
+0

文字に変換して文字をループしないでください – logger

+0

「\\ s +」は任意の数(1つ以上)のスペースを1つの区切り文字と見なします – FredK

答えて

0

こちらの方法論には混乱しています。これはあなたがやろうとしているすべてのであれば、それは単により多くを行うことができます。

String input = "1  a1 b1 r5"; 
String output = input.replace(" ", ", "); 
System.out.println(output); 

真ん中のラインは単に「「空白が続くコンマで、」」、空白文字に置き換えられます。最終的な出力は、ご希望の出力と一致します。

1, , , , , a1, b1, , r5 

これは、最小限の例であり、あなたが実際にはより複雑な正規表現を使用する場合は、その正規表現を投稿し、我々はそれに仕事を得ることができますしてください。

0

あなたがトークンの配列を作成したい場合は、単に使用:

文字列を[] SP = s.split( "");

ただし、これはいない5.

、あなたが期待する「A1」と「B1」0空のアイテムが間に1つのスペースがあり、最初の1の後に4つの空のアイテムを作成します。 "b1"と "r5"の間に2つのスペースがあり、空のアイテムが1つあることが予想されます。 "1"と "a1"の間に5つの空白があります。なぜあなたは4の代わりに5つの空のアイテムを期待していますか?

なぜ、期待出力に "a1"の前にカンマの後にスペースがないのですか?

関連する問題