字符串标记器的问题



我有一组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为行数、列数

你的代码中似乎有一个打字错误,第一行- '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()似乎是有用的,如果您正在从外部源接收数据,而不是自己构建。

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

相关内容

  • 没有找到相关文章

最新更新