为什么通过编译,而执行时报错:import java.util.Scanner;public class Question113 {
public static void main(String[] args) {
String csv = "Sue,5,true,3";
Scanner scanner = new Scanner(csv);
scanner.useDelimiter(",");
int age = scanner.nextInt();
System.out.println(age);
}
}

解决方案 »

  1.   

    你的String csv = "Sue,5,true,3"; 你取scanner.nextInt();是错误的,可以用scanner.next();
      

  2.   

    当你在执行时,由于你的第一个元素是字符,而你读取的时候用的是nextInt,读取一个整数,所以会报错,抛出异常。
      

  3.   

    你可以这样做:先判断元素类型,再读取
    While(sc.hasNext()){if(sc.hasNextInt()){ // sc.hasNextShort()/hasNextDouble/…等各种基本数据类型//做事件…}else{next();//直接跳过}}
      

  4.   


    我以为 scanner.nextInt();
    是自动取下一个Int 而自动跳过不是Int的项目
    汗。。初学8好意思