当前位置: 代码迷 >> Eclipse >> JAVA 出错Exception in thread "main" java.util.InputMismatchException
  详细解决方案

JAVA 出错Exception in thread "main" java.util.InputMismatchException

热度:93   发布时间:2016-04-23 00:23:29.0
JAVA 报错Exception in thread "main" java.util.InputMismatchException
有时候,会出现错误如下:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at day01.StringBuilderDemo.main(StringBuilderDemo.java:66)

代码如下,这是为什么呢?
(这只是一个字符串编辑的简单程序)
package day01;
import java.util.Scanner;
public class StringBuilderDemo {

public static void main(String[] args) {
StringBuilder builder=new StringBuilder();
builder.append("我要飞得更高,飞得更高啊,翅膀卷起风暴,新生呼啸," +
"飞得更高");
print(builder);
System.out.println("1.添加文件内容\n2.修改文件内容\n3.删除文件内容\n4." +
"插入文件内容\n5(其他数字).退出");
Scanner scan=new Scanner(System.in);
int num=scan.nextInt();

while(true){
switch(num){
case 1:{
System.out.print("请输入增加的内容:");
String append=scan.next();
builder.append(append);
System.out.println("修改后效果,如下");
print(builder);
break;
}
case 2:{
System.out.print("请输入修改内容的起始位置:");
int i=scan.nextInt();
System.out.print("请输入修改内容的终止位置:");
int j=scan.nextInt();
System.out.print("请输入修改内容:");
String replace=scan.next();
builder.replace(i,j,replace);
System.out.println("修改后效果,如下");
print(builder);
break;
}
case 3:{
System.out.print("请输入删除内容的起始位置:");
int i=scan.nextInt();
System.out.print("请输入删除内容的终止位置:");
int j=scan.nextInt();
builder.delete(i,j);
System.out.println("修改后效果,如下");
print(builder);
break;

}
case 4:{
System.out.print("请输入插入内容的起始位置:");
int i=scan.nextInt();
System.out.print("请输入修改内容:");
String insert=scan.next();
builder.insert(i,insert);
System.out.println("修改后效果,如下");
print(builder);
break;

}
default:{
System.exit(1);
}

}
System.out.println("1.添加文件内容\n2.修改文件内容\n3.删除文件内容\n4." +
"插入文件内容\n5(其他数字).退出");
num=scan.nextInt();

}


}
public static void print(StringBuilder builder){
String str=builder.toString();
char[] a=str.toCharArray();
for(int i=0;i<a.length;i++){
System.out.print("("+i+")"+a[i]);
if(i%10==0&&i!=0){
System.out.println();
}
}
System.out.println();
}
}

------解决思路----------------------
引用:
还是有相当多得错误,程序看起来是没有错误,但是运行起来怎么就有那么多debug呢?

看什么问题,具体问题具体分析,解决。
楼主不要被问题吓住了,遇到了,分析,看哪里的问题,然后解决
  相关解决方案