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博客༺ཌ༈君☠纖༈ད༻同步發布


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM