我有一组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("");
}