黑马程序员技术交流社区

标题: 知识交流 [打印本页]

作者: chao1    时间: 2016-4-10 00:10
标题: 知识交流
Scanner
hasNextInt():判断是否还有下一个输入项,其中Xxx可以是Int,Double等,如果需要判断是否包括下一个字符串,则可以省略Xxx
nextInt():获取下一个输入项,Xxx的含义和上个方法中的Xxx 相同,默认情况下
Scanner使用空格,回车作为分隔符
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    if(sc.hasNextInt()) {
        int i = sc.nextInt();
        System.out.println(i);

        else{

        System.out.println()   
}}
}
bug问题:先用nextInt()接收int类型,接收int类型,在用nextLine()接收字符串的时候,会导致nextLine()直接把回车接收到了,nextLine不能继续接收字符串了
1)现获取一个数值后,在创建一个新的键盘录入对象获取字符串
2)把所有的数据都先按照字符串获取,然后要什么,你就对应转换什么

出现问题代码:
Scanner sc = new Scanner(System.in);
nextInt()是键盘录入整数的方法,当我们录入10的时候,其实在键盘上录入的是10和\r\n,nextInt()方法只获取10就结束了nextLine()是键盘录入字符串的方法,可以接收任意类型,通过\r\n,只要遇到就证明结束了

Scanner sc2 = new Scanner(System.in);  //在创建一个新的键盘录入对象就可以解决
System.out.println(System.in);
String.out.println("");
String line = sc.nextLine();
int i = Integer.parseInt(line);





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2