我有一个Java字符串如下:
C | 51199120 | 36937872 | 14261248 | 0.73 | I | 102398308 | 6240560 | 96157748 | 0.07 | J | 90598564 | 1920184 | 8867 8380 | 0.0
我希望使用正则表达式将其拆分为String数组:
Array1 = C,51199120,36937872,14261248,0.73
Array2 =I,102398308,6240560,96157748,0.07
Array3 =J,90598564,1920184,88678380,0.03
任何人都可以帮助使用Java代码吗?
答案 0 :(得分:0)
我不认为这很简单。你有两件事需要做:
我不是正则表达式专家,但我不认为它可以是单一模式。你需要两个并在子串上循环。
答案 1 :(得分:0)
您可以使用String.split("\\|")
轻松地在子组件上拆分字符串,但正则表达式不会帮助您将它们分组到不同的数组中,也不会帮助您将子字符串转换为适当的类型。你需要一个单独的逻辑。
答案 2 :(得分:0)
使用String.split()
方法。
String []ar=str.split("(?=([A-Z]))");
for(String s:ar)
System.out.println(s.replace("|",","));
答案 3 :(得分: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];
}