2013-04-13 42 views
-3

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

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是行数和列数。

+1

那么它是给问题 –

+1

伟大的工作。继续你的程序。 –

+2

你面临的问题是什么? –

回答

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()似乎很有用,如果您从外部源接收数据,并且不是您自己构建的。

+0

非常感谢... – user2277550

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

非常感谢.. – user2277550