我想转换字符串数组,例如
str1[][] ={{"1,2,3,4","0","2,1"}};
像这样的int数组:
int arr[][]={{1,2,3,4},{0,0,0,0},{2,1,0,0}}
我无法仅使用 split 方法,因为 tempString 的大小在每次迭代后都会发生变化。
我的代码:
int numOfelements = 3;
String str1[][] = { { "1,2,3,4", "0", "2,1" } };
int graph[][] = new int[numOfelements][numOfelements];
String str[]= new String[numOfelements];
for (int i = 0; i < numOfelements; ++i) {
str = str1[i][0].split(",");
for (int j = 0; j < numOfelements; ++j) {
try {
if (str.length < j)
graph[i][j] = Integer.parseInt(str[i]);
else
graph[i][j] = 0;
} catch (Exception e) {
JOptionPane.showMessageDialog(new JFrame(), "Error in the data!",
"Error", JOptionPane.ERROR_MESSAGE);
break;
}
}
}
最佳答案
您可以编写自定义方法来用零填充数组。如果谨慎使用,.split()
仍然可以使用。
public static int[] fillArray(String s, int size){
String[] tok = str.split(",");
int[] newArr = new int[size];
for(int x=0; x<Math.min(size, tok.length); x++)
newArr[x] = Integer.parseInt(tok[x]);
for(int x=Math.min(size, tok.length); x<Math.max(size, tok.length); x++)
newArr[x] = 0;
return newArr;
}
获取数组数据并用零填充它并将其放回到新数组中:
int[][] arr;
for(int x=0; x<str1[0].length; x++)
arr[0][x] = fillArray(str1[0][x], 4); //size of 4 can be changed to your needs
关于java - 将字符串数组拆分为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023090/