我們在初學 Java 編程的時候,總是感覺很枯燥乏味,想著做點可以交互的小系統,可以讓用戶自由輸入,系統可以接收做出反映。這就要介紹一下 Java 中的 Scanner 類了。 ...
前言
我們在初學 Java 編程的時候,總是感覺很枯燥乏味,想著做點可以交互的小系統,可以讓用戶自由輸入,系統可以接收做出反映。這就要介紹一下 Java 中的 Scanner 類了。
一、Scanner類
Java 中的 Scanner 類是一個用於讀取用戶輸入的工具類。它可以從控制台、文件、字元串等多種來源讀取數據,並將其轉換為不同的數據類型,如整數、浮點數、布爾值等。
Scanner 類是在 Java 5 版本中首次引入,在 java.util 包下,是 Java 的工具類,是一個最終類,實現了 Iterator
public final class Scanner implements Iterator<String>, Closeable {}
我們從 Scanner 類中可以看到其提供了多個構造器,不同的構造器可以接收不同的數據源:輸入流、文件、字元串等,然後進行數據解析。
// 讀取可讀資源,並指定模式分隔
private Scanner(Readable source, Pattern pattern) {}
// 讀取可讀資源
public Scanner(Readable source) {}
// 讀取輸入流
public Scanner(InputStream source) {}
// 讀取輸入流,並指定字元編碼類型
public Scanner(InputStream source, String charsetName) {}
// 讀取文件
public Scanner(File source) throws FileNotFoundException {}
// 讀取文件,並指定字元編碼類型
public Scanner(File source, String charsetName) throws FileNotFoundException {}
// 讀取路徑文件
public Scanner(Path source) throws IOException {}
// 讀取字元串
public Scanner(String source) {}
......
Scanner 類提供了許多有用的方法,如 next()、nextInt()、nextLine() 等,使得讀取和解析輸入變得非常方便。同時,Scanner 類還支持定界符(delimiter)的設置,可以根據指定的分隔符對輸入進行分割,進一步簡化輸入處理的過程。
二、Scanner類基本使用
1. 基本使用
使用 Scanner 類,首先需要創建一個 Scanner 對象,並將其與一個輸入流(如 System.in)相關聯,然後使用 Scanner 對象的 next() 或 nextLine() 方法讀取用戶輸入的文本。當然讀取其他數據類型也是沒有問題的,就需要使用對應類型的方法,如 nextInt()、nextShort()、nextLong() 等等。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 創建Scanner對象
Scanner scanner = new Scanner(System.in);
// 提示用戶輸入一個字元串
System.out.print("請輸入一個字元串: ");
// 讀取用戶控制台輸入的字元串
String input = scanner.nextLine();
// 控制台列印用戶輸入的字元串
System.out.println("你輸入的字元串是: " + input);
}
}
當用戶輸入文本後,按下回車鍵後,輸入的文本將作為字元串被讀取並保存在 input 變數中。此時程式會將讀取的字元串列印出來。
2. nextLine()方法
Scanner 類中的 nextLine() 方法用於獲取輸入的下一行文本。它會掃描輸入流中當前位置到行尾(包括換行符 "\n"),並返回該行文本作為一個字元串,不包括行尾符號。如果當前位置已經是行尾,它將返回一個空字元串。可以通過重覆調用該方法來連續讀取多行文本。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入多行文本,以空行結束:");
StringBuilder stringBuilder = new StringBuilder();
// 判斷是否有下一行
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
// 遇到空行退出迴圈
if (line.isEmpty()) {
break;
}
stringBuilder.append(line);
// 拼接行尾符號,保留換行格式
stringBuilder.append('\n');
}
String input = stringBuilder.toString();
System.out.println("輸入的多行文本為:");
System.out.println(input);
}
}
總結
現在我們就可以使用 Scanner 類中的方法去接收用戶的一些輸入了,可以自己開發一些簡易的小系統,是可以和用戶交互的。
關註公眾號:編程火箭車
我們定期發佈編程相關的文章、資訊、活動等內容。幫助編程愛好者、初學者或初級程式員快速入門、打牢基礎。歡迎大家關註,和我們一起探索編程的精彩世界。我們定期發佈編程相關的文章、資訊、活動等內容。幫助編程愛好者、初學者或初級程式員快速入門、打牢基礎。歡迎大家關註,和我們一起探索編程的精彩世界。
本文來自博客園,作者:編程火箭車,轉載請註明原文鏈接:https://www.cnblogs.com/coding-rocket/p/17448477.html