不确定我的头脑是否只是麻木或我只是愚蠢,但由于某种原因,这背后的逻辑逃脱了我。基本上在Android应用程序中,我通过PHP脚本提取CSV信息。该信息显示为
value00,value01,value02,value03,value04;value10,value11,value12,value13,value14;value20, etc...
现在我想设置一个二维数组,其中thisArray [0] [0] = value00,thisArray [1] [1] = value11,thisArray [1] [4] = value14等。我的代码会被“;”拆分但我无法弄清楚如何将该数组拆分成我想要的二维数组。这就是我所拥有的:( httpMessage是包含上述信息的字符串)
String[][] secondSplit;//
String[] firstSplit;//
String currvalue;//
firstSplit = httpMessage.split(";");
for(int i=0; i<firstSplit.length; i++) {
Log.d("EFFs" + Integer.toString(i),firstSplit[i]);
}
LogCat显示所需的行为,EFFs0 =第1行,EFFs1 =第2行,就像我想要的那样。但现在,我如何获得第二个维度?此外,由于我100%肯定这是一个愚蠢的问题,我会抛出另一个简单的答案,是否有一种简单的方法来判断一个字符串是否是一个数字?
答案 0 :(得分:7)
您可以执行以下操作:
secondSplit = new String[firstSplit.length][];
for(int i=0; i<firstSplit.length; i++){
secondSplit[i] = firstSplit[i].split(",");
}
很确定这会奏效。如果没有,请告诉我!希望有所帮助!
答案 1 :(得分:2)
如果你知道有多少行和列,你可以像这样使用Scanner类(最近从this answer了解到这一点):
Scanner sc = new Scanner(input).useDelimiter("[,;]");
final int M = 5;
final int N = 2;
String[][] matrix = new String[M][N];
for (int r = 0; r < M; r++) {
for (int c = 0; c < N; c++) {
matrix[r][c] = sc.next();
}
}
//Just to see that it worked
for(String[] row : matrix) {
for(String col : row) {
System.out.print(col+",");
}
System.out.println();
}