import java.util.Scanner; Scanner reader = new Scanner(System.in); reader.close(); //用完关掉(IO流如果不关掉就会一直占用资源)1.2 最常用的四个函数
hasNext();
next();
hasNextLine();
nextLine();
1. next()和cin是一样的,把空格和回车作为结束符。
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
if(reader.hasNext()){ //①是否有单词?
String str = reader.next(); //②接收单词
System.out.println(str);
}
//关闭
reader.close();
}
}
2. nextLine()和getline是一样的,接收一整行,只把回车当做终止符。
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
if(reader.hasNextLine()){ //③是否有下一行?
String str = reader.nextLine(); //④接收下一行
System.out.println(str);
}
//关闭
reader.close();
}
}
3. 但是如果使用next()之后紧接着使用nextLine()呢?效果和C++中用完cin接着用getline一样,getline获取的是cin输入的回车,直接把它当做终止符输出回车前的空行。
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
if(reader.hasNext()){ //①是否有单词?
String str = reader.next(); //②接收单词
System.out.println(str);
}
if(reader.hasNextLine()){ //③是否有下一行?
String str = reader.nextLine(); //④接收下一行
System.out.println(str);
}
//关闭
reader.close();
}
}
4. 但是如果两个nextLine连在一起就不会出现问题
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
if(reader.hasNextLine()){ //③是否有下一行?
String str = reader.nextLine(); //④接收下一行
System.out.println(str);
}
if(reader.hasNextLine()){ //③是否有下一行?
String str = reader.nextLine(); //④接收下一行
System.out.println(str);
}
//关闭
reader.close();
}
}
说明了,还是C++中的那个原因:
1.3 其他常用函数nextBoolean()和hasNextBoolean()
nextByte()和hasNextByte()
nextShort()和hasNextShort()
nextInt()和hasNextInt()
nextLong和hasNextLong()
nextFloat()和hasNextFloat()
nextDouble和hasNextDouble()
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("请输入整数:");
if(reader.hasNextInt()){
int a = reader.nextInt();
System.out.println(a);
}
System.out.println("请输入小数:");
if(reader.hasNextDouble()){
Double a = reader.nextDouble();
System.out.println(a);
}
//关闭
reader.close();
}
}
如果我们一开始就输入小数呢?
以上的例子中,好像hasNext..()函数没什么用,不加这个if判断也可以。那我们去掉这个判断,然后在本应该接收int数据的nextInt()这里输入小数试一试:
那么下面就再来看一下hasNext..()函数的应用场景
二、输出//方式(一) 输出+换行 System.out.println(); //方式(二) 输出不换行 System.out.print();



