java学习笔记—— 输入(Scanner)和输出
Posted 玛丽莲茼蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习笔记—— 输入(Scanner)和输出相关的知识,希望对你有一定的参考价值。
一、输入
1.1 Scanner 类
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();
以上是关于java学习笔记—— 输入(Scanner)和输出的主要内容,如果未能解决你的问题,请参考以下文章
Java学习笔记之Scanner报错java.util.NoSuchElementException
第212天学习打卡(Java算法题的输出问题scanner用法)