将字符串拆分两次

时间:2012-11-27 21:05:33

标签: java multidimensional-array split

不确定我的头脑是否只是麻木或我只是愚蠢,但由于某种原因,这背后的逻辑逃脱了我。基本上在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%肯定这是一个愚蠢的问题,我会抛出另一个简单的答案,是否有一种简单的方法来判断一个字符串是否是一个数字?

2 个答案:

答案 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();
}