Exception java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source)
importjava.util.*;publicclassA_Sort1{publicstaticvoidmain(String[]args){Strings;Scann...
import java.util.*;
public class A_Sort1
{
public static void main(String[] args)
{
String s;
Scanner scan=new Scanner(System.in);
int zu,shu;
zu=scan.nextInt();
shu=scan.nextInt();
int[][][] data=new int[zu][shu][3];
for(int i=0;i<zu;i++)
for(int a=0;a<shu;a++)
{
s=scan.nextLine();
StringTokenizer ss=new StringTokenizer(s);
data[i][a][0]=Integer.parseInt(ss.nextToken());//提示此处有错
data[i][a][1]=Integer.parseInt(ss.nextToken());
data[i][a][2]=Integer.parseInt(ss.nextToken());
}
for(int i=0;i<zu;i++)
for(int a=0;a<shu;a++)
{
System.out.print(data[i][a][0]);
System.out.print(data[i][a][1]);
System.out.print(data[i][a][2]);
System.out.println();
}
}
} 展开
public class A_Sort1
{
public static void main(String[] args)
{
String s;
Scanner scan=new Scanner(System.in);
int zu,shu;
zu=scan.nextInt();
shu=scan.nextInt();
int[][][] data=new int[zu][shu][3];
for(int i=0;i<zu;i++)
for(int a=0;a<shu;a++)
{
s=scan.nextLine();
StringTokenizer ss=new StringTokenizer(s);
data[i][a][0]=Integer.parseInt(ss.nextToken());//提示此处有错
data[i][a][1]=Integer.parseInt(ss.nextToken());
data[i][a][2]=Integer.parseInt(ss.nextToken());
}
for(int i=0;i<zu;i++)
for(int a=0;a<shu;a++)
{
System.out.print(data[i][a][0]);
System.out.print(data[i][a][1]);
System.out.print(data[i][a][2]);
System.out.println();
}
}
} 展开
1个回答
展开全部
你的scan好像被关闭了
Scanner scan2=new Scanner(System.in);
s=scan2.nextLine();
Scanner scan2=new Scanner(System.in);
s=scan2.nextLine();
追问
你的修改能够改正我的错误,但是我认为不是scan关闭了,而是是因为nextInt()函数和nextLine()的作用不同。nextInt()不会读取一行最后的那个换行符,但是nextLine()读那个换行符。结果在循环开始的第一次nextLine()读取了第二行结尾的那个换行符,而不是去读取第三行的内容。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询