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()

nextLonghasNextLong()

nextFloat()和hasNextFloat()

nextDoublehasNextDouble()

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

Java入门 第一季第五章 编程练习解析

第212天学习打卡(Java算法题的输出问题scanner用法)

Java基础:控制台输入(Scanner)和输出(printprintlnprintf)

Java常用类 Scanner类和大数类

Java学习笔记2(输入与随机数简单介绍)