A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static void main(String[] args) {
                Scanner sc  = new Scanner(System.in);
                System.out.println("请输入第一个整数");
                int  i =  sc.nextInt();
                System.out.println("请输入第二个字符串");
                  String j =  sc.nextLine();
                System.out.println("i ="+i+",j="+j);
               
        }



打印的结果是
请输入第一个整数
10
请输入第二个字符串
i =10,j=
为什么请输入第二个字符串会自动打印,而不能输入.

14 个回复

倒序浏览
  1. import java.util.Scanner;
  2. public class Test{
  3.         public static void main(String[] args) {
  4.                 Scanner sc  = new Scanner(System.in);
  5.                 System.out.println("请输入第一个整数");
  6.                 int  i =  sc.nextInt();
  7.                 System.out.println("请输入第二个字符串");
  8.                 String j =  sc.next();//这样写就没事儿了
  9.                 System.out.println("i ="+i+",j="+j);
  10.                
  11.         }
  12. }
复制代码
回复 使用道具 举报
shenfuhan 来自手机 中级黑马 2016-1-5 23:57:18
藤椅
因为遇到回车换行,系统默认输入字符串也结束了
回复 使用道具 举报
补一个截图C:\Users\彬彬\Desktop
回复 使用道具 举报
这是运行的截图,你可以自己试试

QQ截图20160105235613.png (3.36 KB, 下载次数: 187)

运行截图

运行截图
回复 使用道具 举报
luyang18 来自手机 中级黑马 2016-1-6 12:35:14
地板
视频上有讲解
回复 使用道具 举报
nextInt获取下一次输入的数字。nextLine获取一行。而nextLine是可以获取回车空格等分隔符的。你的nextLine实际获取的是10后面的回车,获取到回车后,nextLine方法就已经结束了。所以不显示任何数据,也不能输入。把nextLine改成next就可以了。因为next会自动去掉获取的回车空格等特殊符号
回复 使用道具 举报 1 0
楼上正解!
回复 使用道具 举报
keaitao0321 来自手机 中级黑马 2016-1-6 18:45:21
9#
学习了!!
回复 使用道具 举报
学习了!!
回复 使用道具 举报
可以录入字符串,用nextLIne()方法
回复 使用道具 举报
把int-->String需要注意:如果写成int i = sc.nextInt(); String j = sc.nextLine();那么,当运行输入一个整数的时候,再按回车,系统会默认把回车当做String类型的数据.可以这样解决:Scanner sc = new Scanner(System.in);   int a = sc.nextInt();   sc = new Scanner(System.in); 这样就是说重新创建一个Scanner对象来接受数据。                                String b = sc.nextLine();
回复 使用道具 举报

只是有点弄不懂,如果把第一个录入整数也改 调用nextLine() 方法  录入字符串 就没事.  
回复 使用道具 举报
回复 使用道具 举报
都用nextLine();吧,省的出现各种麻烦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马