2012-01-18 10 views
-2

にREGEXを使用してJava文字列を分割する方法:次のように私はJavaのStringを持っている配列

C | 51199120 | 36937872 | 14261248 | 0.73 | I | 102398308 | 6240560 | 96157748 | 0.07 | J | 90598564 | 1920184 | 8867 8380 | 0.0

私は文字列の配列として使用してこの正規表現を分割したい:

Array1 = C,51199120,36937872,14261248,0.73 
Array2 =I,102398308,6240560,96157748,0.07 
Array3 =J,90598564,1920184,88678380,0.03 

は、誰もがJavaコードを助けることはできますか?

+1

何を試しましたか? Java APIのString [] split(String regex)メソッドを見ましたか? – Yuushi

+2

これには正規表現は必要ありません。単に '|'で分割し、4のグループを取る。 – takteek

答えて

0

私はそれが簡単だとは思わない。あなたは、あなたがする必要がある2つのものを持っている:

  1. ブレークアップ入力文字列あなたは手紙に遭遇したとき
  2. ブレークアップ

は、私は正規表現の専門家だパイプによって各部分が、私それが単一のパターンになるとは思わない。部分文字列には2つのループと1つのループが必要です。

0

String.split("\\|")を使用して文字列をサブコンポーネントに簡単に分割できますが、正規表現を使用して異なる配列にグループ化することや、部分文字列を適切な型に変換することはできません。それには別のロジックが必要です。

+0

私はすぐに助けてくれてありがとうございます。 –

0

String.split()メソッドを使用してください。

String []ar=str.split("(?=([A-Z]))"); 
for(String s:ar) 
    System.out.println(s.replace("|",",")); 
0

より単純に分割してループするほうが簡単です。
多かれ少なかれ:

String input = ... 
String[] splitted = input.split("|"); 
List<String[]> resultArrays = new ArrayList<String[]>(); 
String[] currentArray = null; 
for (int i = 0; i < splitted.length; i++) { 
    if (i % 5 == 0) { 
     currentArray = new String[5]; 
     resultArrays.put(currentArray); 
    } 
    currentArray[i%5] = splitted[i]; 
} 
+0

'input.split(" | ");'これは正規表現のORシンボルであるため意図したとおりに動作しません。代わりに '\\ |'を使うべきです。 –

+0

'split()'パターンは正規表現であり、 '|'は正規表現のメタキャラクタなので、エスケープする必要があります: '' \\ | "'。また、Listに要素を追加する方法は、 'put()'ではなく 'add()'です。 –

関連する問題