Java:如何将格式为{i,j},{i,j},{i,j}的字符串文本文件转换为二维数组?
我的文本文件如下: {11-11,22},{33-33,44},{88-88,99} 如何将其转换为Java中的二维数组,格式如下: [11-11,22],[33-33,44],…[88-88,99]Java:如何将格式为{i,j},{i,j},{i,j}的字符串文本文件转换为二维数组?,java,Java,我的文本文件如下: {11-11,22},{33-33,44},{88-88,99} 如何将其转换为Java中的二维数组,格式如下: [11-11,22],[33-33,44],…[88-88,99]公共静态void main(字符串[]args){ public static void main(String[] args) { Scanner in = new Scanner(Thread.currentThread().getContextClassLoader(). ge
公共静态void main(字符串[]args){
public static void main(String[] args) {
Scanner in = new Scanner(Thread.currentThread().getContextClassLoader().
getResourceAsStream("input/test.txt"));
String line = in.nextLine();
String[] tokens = line.split("},");
String[][] finalArray = new String[tokens.length][2];
for (int i = 0; i < tokens.length; i++) {
tokens[i] = tokens[i].replace("{", "");
tokens[i] = tokens[i].replace("}", "");
finalArray[i] = tokens[i].split(",");
}
for (int i = 0; i < finalArray.length; i++) {
System.out.println(Arrays.toString(finalArray[i]));
}
}
Scanner in=新扫描仪(Thread.currentThread().getContextClassLoader()。
getResourceAsStream(“input/test.txt”);
String line=in.nextLine();
String[]tokens=line.split(“}”);
字符串[][]finalArray=新字符串[tokens.length][2];
for(int i=0;i
解决方案:
嗯,
[[11-11,22],[33-33,44],…[88-88,99]
到底代表什么?什么是11-11
?字符串?到目前为止,您为实现此目标做了哪些工作?---text.txt:{11-11,22},{33-33,44},{88-88,99}输出:[11-11,22][33-33,44][88-88,99]
String source = "{11-11,22},{33-33,44},{88-88,99}";
String[] splittedSource = source.split("(?<=\\}),(?=\\{)");
Pattern p = Pattern.compile("\\{([^,]+),([^\\}]+)");
String[][] result = new String[splittedSource.length][2];
for(int i = 0; i < splittedSource.length; i++) {
Matcher m = p.matcher(splittedSource[i]);
while(m.find()) {
result[i][0] = m.group(1);
result[i][1] = m.group(2);
System.out.print(m.group(1) + " " + m.group(2) + "\n");
}
}
System.out.println(Arrays.deepToString(result));
11-11 22
33-33 44
88-88 99
[[11-11, 22], [33-33, 44], [88-88, 99]]