有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字符串拆分两次

我不确定我的头脑是麻木的还是愚蠢的,但出于某种原因,这背后的逻辑让我不知所措。本质上,在安卓应用程序中,我通过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) 个答案

  1. # 1 楼答案

    您可以执行以下操作:

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

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

  2. # 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();
    }