字符串标记符的问题

时间:2013-04-13 13:53:27

标签: java string stringtokenizer

我有一组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是行数和列数。

2 个答案:

答案 0 :(得分:1)

你的代码中似乎有一个拼写错误,第一行 - '我'应该是'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()似乎也很有用。

答案 1 :(得分: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("");
    }