.................java 里nextString() 的小问题
importjava.util.Scanner;publicclassFaint{publicstaticvoidmain(Stringargs[]){Scannerin...
import java.util.Scanner;
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
//String why = input.nextLine(); // 第 1 行
//System.out.println( why ); // 第 2 行
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
以上程序的 第5 第6 行 为什么没有提示 输入???
如果把 第5 第6 行内容 放到 第1 第2 行就会提示输入
这是为什么?????不明白
谢谢解答
我试过了,这样可以
不过能说道详细点么?原理是什么?
谢谢
"你想输入两次,所以需要读两次了"
那为什么 输入int的话不用 读2次那? 展开
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
//String why = input.nextLine(); // 第 1 行
//System.out.println( why ); // 第 2 行
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
以上程序的 第5 第6 行 为什么没有提示 输入???
如果把 第5 第6 行内容 放到 第1 第2 行就会提示输入
这是为什么?????不明白
谢谢解答
我试过了,这样可以
不过能说道详细点么?原理是什么?
谢谢
"你想输入两次,所以需要读两次了"
那为什么 输入int的话不用 读2次那? 展开
2个回答
展开全部
在4行和5行间加上
input = new Scanner(System.in);
就可以了!
注意输入类型
目前顺序下 要求第一次输入为int数第二次为String,第一次输入别的类型例如字符 a 会报错!
-------
也许我没说明白哈。
代码是这样的时候:
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
你是不是运行后会在输入区输入一个int先
例如: 1
你然后按了回车就是
1
1(这时候鼠标在这行)
然后你是不是又按了回车?
那么你的按键就是 1 回车 回车
那么第5行的input.nextLine()其实读的是两回车之间的也就是空字符串。
你的代码可以这样写
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
input.nextLine(); //Add
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
或者你别多按回车就是了
========
哦!怕你又误会!再解释
你用的是nextLine(),也就是读一行所以特殊。它以行分割符做结束,也就是回车符
而nextInt()不一样了
当如上述代码一样,第一是nextInt(),你是不是发现,按多少次回车后再输入1,它都会打印1巴
所以你不要用nextLine()用next()最方便了~哈哈,忘了最先告诉你!
input = new Scanner(System.in);
就可以了!
注意输入类型
目前顺序下 要求第一次输入为int数第二次为String,第一次输入别的类型例如字符 a 会报错!
-------
也许我没说明白哈。
代码是这样的时候:
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
你是不是运行后会在输入区输入一个int先
例如: 1
你然后按了回车就是
1
1(这时候鼠标在这行)
然后你是不是又按了回车?
那么你的按键就是 1 回车 回车
那么第5行的input.nextLine()其实读的是两回车之间的也就是空字符串。
你的代码可以这样写
public class Faint
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int a = input.nextInt(); // 第 3 行
System.out.println( a ); // 第 4 行
input.nextLine(); //Add
String why = input.nextLine(); // 第 5 行
System.out.println( why ); // 第 6 行
}
}
或者你别多按回车就是了
========
哦!怕你又误会!再解释
你用的是nextLine(),也就是读一行所以特殊。它以行分割符做结束,也就是回车符
而nextInt()不一样了
当如上述代码一样,第一是nextInt(),你是不是发现,按多少次回车后再输入1,它都会打印1巴
所以你不要用nextLine()用next()最方便了~哈哈,忘了最先告诉你!
展开全部
我刚学到这里,卡了1个多小时,不知道理解的对不对
Scanner sc = new Scanner(System.in);
String s1 = sc.nextline();//1
String s2 = Sc.nextline();//2
System.out.println("s1="+ s1 + "s2=" + s2);//3
System.out.println("-------------------")
int s3 = sc.nextInt();//4
String s4 = sc.nextline();//5
System.out.println("s3=" + s3 + "s4=" + s4);//6
/*123的操作是输入(hello + 空格 + world + 空格)得到helloworld,是因为nextline以空格键为结束符号,而345操作(1 + 空格)直接显示了1而结束了字符串的输入,是因为输入1用的是nextInt(),它是以收到有效的数据才结束,当你连续输入1和空格时,nextInt把空格前的1给提取走了,(注意1和空格键之间是空的但是是空字符串)而在其后的nextline()把空格键前截至到1中间的空字符给误会的吸走了。*/
//刚看了下日期可能对你已经没帮助了-_-!!
Scanner sc = new Scanner(System.in);
String s1 = sc.nextline();//1
String s2 = Sc.nextline();//2
System.out.println("s1="+ s1 + "s2=" + s2);//3
System.out.println("-------------------")
int s3 = sc.nextInt();//4
String s4 = sc.nextline();//5
System.out.println("s3=" + s3 + "s4=" + s4);//6
/*123的操作是输入(hello + 空格 + world + 空格)得到helloworld,是因为nextline以空格键为结束符号,而345操作(1 + 空格)直接显示了1而结束了字符串的输入,是因为输入1用的是nextInt(),它是以收到有效的数据才结束,当你连续输入1和空格时,nextInt把空格前的1给提取走了,(注意1和空格键之间是空的但是是空字符串)而在其后的nextline()把空格键前截至到1中间的空字符给误会的吸走了。*/
//刚看了下日期可能对你已经没帮助了-_-!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询