1. 程式人生 > 其它 >Java操作符複習(2)-操作符-Scanner

Java操作符複習(2)-操作符-Scanner

Java操作符複習(2)-操作符-Scanner

從控制檯輸入資料,所以需要用到Scanner類。

步驟1:使用Scanner讀取整數

注意: 使用Scanner類,需要在最前面加上

import java.util.Scanner;

表示匯入這個類,才能夠正常使用

/**
 * FileName:      OperatorSc.java
 * @Description: TODO(用一句話描述該檔案做什麼)
 * All rights Reserved, Designed By Gujiakai
 * Copyright:    Copyright(C) 2021-2022
 * Company       Nanjing Xiaozhuang University
 * @author:      Gu Jiakai
 * @version      V1.0 
 * Createdate:   2021年7月2日 上午9:38:33 
 *
 * Modification  History
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2021年7月2日      Jaya          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */
package operator;

/**
 * @ClassName:      OperatorSc.java
 * @Description:    TODO(用一句話描述該檔案做什麼) 
 * @author          Gu jiakai
 * @version         V1.0  
 * @Date            2021年7月2日 上午9:38:33  
 */

import java.util.Scanner;



public class OperatorSc {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	int a=s.nextInt();
	System.out.println(a);
	int b=s.nextInt();
	System.out.println(b);
}
}

//result:
/*
 * 5
 * 5
 * 6
 * 6
 */

步驟2:使用Scanner讀取浮點數

/**
 * FileName:      ScReadFpNum.java
 * @Description: TODO(用一句話描述該檔案做什麼)
 * All rights Reserved, Designed By Gujiakai
 * Copyright:    Copyright(C) 2021-2022
 * Company       Nanjing Xiaozhuang University
 * @author:      Gu Jiakai
 * @version      V1.0 
 * Createdate:   2021年7月2日 上午9:56:34 
 *
 * Modification  History
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2021年7月2日      Jaya          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */
package Scanner;

import java.util.Scanner;

/**
 * @ClassName:      ScReadFpNum.java
 * @Description:    TODO(用一句話描述該檔案做什麼) 
 * @author          Gu jiakai
 * @version         V1.0  
 * @Date            2021年7月2日 上午9:56:34  
 */
public class ScReadFpNum {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	float a=s.nextFloat();
	System.out.println(a);	
}
}
//result:
//52.01452563245
//52.014526

步驟3:使用Scanner讀取字串

/**
 * FileName:      ScReadString.java
 * @Description: TODO(用一句話描述該檔案做什麼)
 * All rights Reserved, Designed By Gujiakai
 * Copyright:    Copyright(C) 2021-2022
 * Company       Nanjing Xiaozhuang University
 * @author:      Gu Jiakai
 * @version      V1.0 
 * Createdate:   2021年7月2日 上午10:01:43 
 *
 * Modification  History
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2021年7月2日      Jaya          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */
package Scanner;

import java.util.Scanner;

/**
 * @ClassName:      ScReadString.java
 * @Description:    TODO(用一句話描述該檔案做什麼) 
 * @author          Gu jiakai
 * @version         V1.0  
 * @Date            2021年7月2日 上午10:01:43  
 */

public class ScReadString {
public static void main(String[] args) {
	Scanner s=new Scanner(System.in);
	String a=s.nextLine();
	System.out.println(a);
}
}

//result:
//I love China!
//I love China!

步驟4:讀取了整數後,接著讀取字串

需要注意的是,如果在通過nextInt()讀取了整數後,再接著讀取字串,讀出來的是回車換行:"\r\n",因為nextInt僅僅讀取數字資訊,而不會讀取回車換行"\r\n".

所以,如果在業務上需要讀取了整數後,接著讀取字串,那麼就應該連續執行兩次nextLine(),第一次是取走回車換行,第二次才是讀取真正的字元。

錯誤示範:

/**
 * FileName:      ScReadInt$String.java
 * @Description: TODO(用一句話描述該檔案做什麼)
 * All rights Reserved, Designed By Gujiakai
 * Copyright:    Copyright(C) 2021-2022
 * Company       Nanjing Xiaozhuang University
 * @author:      Gu Jiakai
 * @version      V1.0 
 * Createdate:   2021年7月2日 上午10:08:36 
 *
 * Modification  History
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2021年7月2日      Jaya          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */
package Scanner;

import java.util.Scanner;

/**
 * @ClassName:      ScReadInt$String.java
 * @Description:    
 * 需要注意的是,如果在通過nextInt()讀取了整數後,
 * 再接著讀取字串,讀出來的是回車換行:"\r\n",
 * 因為nextInt僅僅讀取數字資訊,
 * 而不會讀取回車換行"\r\n".) 
 * @author          Gu jiakai
 * @version         V1.0  
 * @Date            2021年7月2日 上午10:08:36  
 */
public class ScReadInt$String {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int i=sc.nextInt();
	String s=sc.nextLine();
	System.out.println(i);
	System.out.println(s);
}
}

//Summary:
//1.nextInt()只會讀取數值,
//剩下"\n"還沒有讀取,並將cursor放在本行中。
//
//2.nextLine()會讀取"\n",
//並結束(nextLine() reads till the end of line \n)。

//desc:
//先輸入數字123供nextInt()方法讀取,然後按下回車,
//程式直接結束,輸出123。nextLine方法會讀取回車並結束讀取。

//result:
//123
//123

正確操作:

/**
 * FileName:      ScReadInt_String$Right.java
 * @Description: TODO(用一句話描述該檔案做什麼)
 * All rights Reserved, Designed By Gujiakai
 * Copyright:    Copyright(C) 2021-2022
 * Company       Nanjing Xiaozhuang University
 * @author:      Gu Jiakai
 * @version      V1.0 
 * Createdate:   2021年7月2日 上午10:25:10 
 *
 * Modification  History
 * Date         Author        Version        Discription
 * -----------------------------------------------------------------------------------
 * 2021年7月2日      Jaya          1.0             1.0
 * Why & What is modified: <修改原因描述>
 */
package Scanner_Demo;

import java.util.Scanner;

/**
 * @ClassName:      ScReadInt_String$Right.java
 * @Description:    TODO(用一句話描述該檔案做什麼) 
 * @author          Gu jiakai
 * @version         V1.0  
 * @Date            2021年7月2日 上午10:25:10  
 */
public class ScReadInt_String$Right {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int i=sc.nextInt();
	String s1=sc.nextLine();
	String s2=sc.nextLine();
	System.out.println(i);
	System.out.println(s2);
}
}

//result:
//123
//請黨放心,強國有我!
//123
//請黨放心,強國有我!