黑马程序员技术交流社区
标题:
Scanner 为什么不能录入字符串??
[打印本页]
作者:
n_Nie1991
时间:
2016-1-5 23:31
标题:
Scanner 为什么不能录入字符串??
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=
为什么请输入第二个字符串会自动打印,而不能输入.
作者:
彬小彬
时间:
2016-1-5 23:54
import java.util.Scanner;
public class Test{
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.next();//这样写就没事儿了
System.out.println("i ="+i+",j="+j);
}
}
复制代码
作者:
shenfuhan
时间:
2016-1-5 23:57
因为遇到回车换行,系统默认输入字符串也结束了
作者:
彬小彬
时间:
2016-1-5 23:57
补一个截图C:\Users\彬彬\Desktop
作者:
彬小彬
时间:
2016-1-5 23:59
这是运行的截图,你可以自己试试
QQ截图20160105235613.png
(3.36 KB, 下载次数: 187)
下载附件
2016-1-5 23:58 上传
运行截图
作者:
luyang18
时间:
2016-1-6 12:35
视频上有讲解
作者:
曾宇
时间:
2016-1-6 15:11
nextInt获取下一次输入的数字。nextLine获取一行。而nextLine是可以获取回车空格等分隔符的。你的nextLine实际获取的是10后面的回车,获取到回车后,nextLine方法就已经结束了。所以不显示任何数据,也不能输入。把nextLine改成next就可以了。因为next会自动去掉获取的回车空格等特殊符号
作者:
ConsciousStream
时间:
2016-1-6 17:37
楼上正解!
作者:
keaitao0321
时间:
2016-1-6 18:45
学习了!!
作者:
chengz
时间:
2016-1-6 20:16
学习了!!
作者:
云鱼
时间:
2016-1-6 21:24
可以录入字符串,用nextLIne()方法
作者:
黑色皮肤的马
时间:
2016-1-6 22:34
把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();
作者:
n_Nie1991
时间:
2016-1-6 23:11
彬小彬 发表于 2016-1-5 23:54
只是有点弄不懂,如果把第一个录入整数也改 调用nextLine() 方法 录入字符串 就没事.
作者:
n_Nie1991
时间:
2016-1-6 23:13
彬小彬 发表于 2016-1-5 23:54
谢谢
作者:
放养的饼干
时间:
2016-1-6 23:15
都用nextLine();吧,省的出现各种麻烦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2