1

不确定我的大脑是麻木还是愚蠢,但出于某种原因,这背后的逻辑让我无法理解。基本上在一个 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% 确定这是一个愚蠢的问题,但我会提出一个简单的答案,是否有一种简单的方法可以判断字符串是否为数字?

4

2 回答 2

7

您可以执行以下操作:

secondSplit = new String[firstSplit.length][];
for(int i=0; i<firstSplit.length; i++){
 secondSplit[i] = firstSplit[i].split(",");
}

很确定这会奏效。如果没有,请告诉我!希望有帮助!

于 2012-11-27T21:08:02.573 回答
2

如果您知道有多少行和列,您可以像这样使用Scanner类(最近从这个答案中学到了这一点):

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();
}
于 2012-11-27T21:15:47.827 回答