zoukankan      html  css  js  c++  java
  • Java基本语法--控制台输入(Scanner类)

    通过Scanner类获取用户输入时,控制台会一直等待用户的输入,可以输入不同类型的值。本篇博客主要讲解从控制台输入值,即Scanner类的使用方法。



    Api文档中关于Scanner类的构造方法



    键盘输入:Scanner(InputStream source)

    键盘输入数字型:byte,short,int,long,float,double

    /*输入数字型:byte,short,int,long,float,double*/
    public class scannerDemo {
    	public static void main(String args[]) {
    		//声明Scanner,方式为键盘输入
    		Scanner sc = new Scanner(System.in);
    		
    		//输入一个int型
    		System.out.print("输入一个int型数字:");
    		int inum = sc.nextInt();
    		System.out.println("你输入了一个int型数学:" + inum);
    		
    		//判断输入的是否为int型
    		System.out.print("输入一个int型数字:");
    		if(sc.hasNextInt()) {
    			int inum2 = sc.nextInt();
    			System.out.println("输入的是int型值:" + inum2);
    		}else {
    			System.out.println("输入的类型不是int型");
    		}		
    		
    		//从键盘输入byte型值
    		System.out.println("输入一个byte型值");
    		byte b = sc.nextByte();
    		System.out.println("输入的byte值为:" + b);
    		
    		//从键盘输入short型值
    		System.out.println("输入一个short型值");
    		short s = sc.nextShort();
    		System.out.println("输入的short值为:" + s);		
    		
    		//从键盘输入long型值
    		System.out.println("输入一个long型值");
    		long l = sc.nextLong();
    		System.out.println("输入的long值为:" + l);			
    		
    		//从键盘输入float型值
    		System.out.println("输入一个float型值");
    		float f = sc.nextFloat();
    		System.out.println("输入的float值为:" + f);
    		
    		//从键盘输入double型值
    		System.out.println("输入一个double型值");
    		double d = sc.nextDouble();
    		System.out.println("输入的double值为:" + d);
    	}
    }
    

    展示效果:

    键盘输入字符串型:String

    /*输入String型*/
    public class InputStringDemo {
        public static void main(String args[]) {
            Scanner sc = new Scanner(System.in);
            
            //nextLine形式输入String值
    		System.out.println("输入一个字符串");
    		System.out.println(sc.hasNextLine());  //判断是否有下一行
    		String str  = sc.nextLine();
    		System.out.println("输入的String值为:" + str);
    		
    		//next形式输入String值
    		System.out.println("再输入一个字符串");
    		System.out.println(sc.hasNext());   //判断是否有非空字符
    		String string  = sc.next();
    		System.out.println("输入的String值为:" + string);
        }
    }
    

    展示效果:


    ۵ has xxxx是检查输入是否符合该形式,返回值是boolean型;next xxx是以该形式读取输入的值

    ۵ 采用has xxxx的话,后面也要用next xxxx。比如前面用hasNextLine,那么后面要用 nextLine 来处理输入

    hasNext与hasNextLine的区别:

    ۵ hasNext是检查是否有非空字符

    ۵ hasNextLine用于检查控制台输入或者读取文本文件时的输入扫描器(java.util.Scanner类)扫描,当扫描到存在下一行时,hasNextLine返回true,没有下一行输入或者文本文件没有下一行时,返回false

    next与nextLine的区别:

    ۵ next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或等视为分隔符或结束符,简单来说next方法不能得到带空格的字符串

    ۵ nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

    键盘输入字符型:char

    public class charDemo {
        public static void main(String args[]) {
            //输入char字符:实际上就是String字符串取第一个字符
    		System.out.println("输入一个字符:");
    		char c1 = sc.next().charAt(0);
    		System.out.println(c1);
    		System.out.println("输入一个字符:");
    		char c2 = sc.next().toCharArray()[0];
    		System.out.println(c2);
    		System.out.println("输入一个字符:");
    		char c3 = sc.next().charAt(1);
    		System.out.println(c3);
        }
    }
    

    展示效果:

    ۵ Java中没有单独定义输入char型变量的方法,char型变量的输入是通过String类的charAt(index)或toCharArray()[index]方法来实现,建议使用charAt(0)



    Scanner方法摘要


    本博客与CSDN博客༺ཌ༈君☠纤༈ད༻同步发布

  • 相关阅读:
    读《阿里云是如何失控的》有感
    LeetCode Search in Rotated Sorted Array 在旋转了的数组中查找
    界面编程模仿篇(QQ登录界面逼真篇)
    最牛B的编码套路
    QinQ封装及终结详解
    seaJs学习笔记之javascript的依赖问题
    Deploy maven on Linux OS
    c++——inline内联函数
    c++——引用
    c++——const关键字
  • 原文地址:https://www.cnblogs.com/asio/p/12283713.html
Copyright © 2011-2022 走看看