我有一组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是行数和列数。
答案 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("");
}