-3

我有一组 3 个字符串,每个字符串都在不同的行中,它们是用空格分隔的整数。

1 1 2
3 4 4
4 5 5

我想将它们输入到字符数组中,并以这种方式使用 StringTokenizer:

for(int j=0;i<n1;i++){
  s2=bure.readLine();         
  st1=new StringTokenizer(s2);

  for(int k=0;k<n2;k++){
    a[j][k]=Integer.parseInt(st1.nextToken());
  }      
}

其中 n1 和 n2 是行数和列数。

4

2 回答 2

1

您的代码中似乎有错字,第一行 - 'i' 应该是 'j':

for(int j=0;j<n1;j++){
  s2=bure.readLine();         
  st1=new StringTokenizer(s2);

  for(int k=0;k<n2;k++){
    a[j][k]=Integer.parseInt(st1.nextToken());
  }      
}

试试这个方法。如果您从外部源接收数据,并且不是您自己构建的,那么使用 st1.hasMoreElements() 似乎也很有用。

于 2013-04-13T15:37:56.883 回答
0
    Scanner sc = new Scanner(System.in);
    StringTokenizer st1;
    final int nrLines = 3;
    final int maxNrColumns = 3;
    int[][] a = new int[nrLines][maxNrColumns];
    for (int j = 0; j < nrLines; j++) {
        String s2 = sc.nextLine();
        st1 = new StringTokenizer(s2);
        for (int k = 0; k < maxNrColumns; k++) {
            if (st1.hasMoreElements()) {
                a[j][k] = Integer.parseInt(st1.nextToken());
            }
        }
    }
    // show the array
    for (int i = 0; i < nrLines; i++) {
        for (int j = 0; j < maxNrColumns; j++) {
            System.out.print(a[i][j]);
        }
        System.out.println("");
    }
于 2013-04-13T14:25:33.240 回答