如何在Java中使用Scanner類讀取單個字元?


從Java 1.5開始引入了Scanner類。此類接受File、InputStream、Path和String物件,使用正則表示式逐個標記讀取所有基本資料型別和字串(來自給定源)。預設情況下,空格被視為分隔符(將資料分成標記)。

使用Scanner類讀取字元

Scanner類提供nextXXX()方法(其中xxx是int、float、boolean等),用於讀取各種基本資料型別。但它從未提供讀取單個字元的方法。

但是,您仍然可以使用此類讀取單個字元。

  • Scanner類的next()方法以字串格式返回源的下一個標記。這將讀取單個字元(由分隔符分隔)作為字串。
String str = sc.next();
  • String類的toCharArray()方法將當前字串轉換為字元陣列。
char ch[] = str.toCharArray()
  • 您可以從陣列中獲取儲存在第0個位置的字元。
char myChar = ch[0];

示例

以下示例使用Scanner類從使用者讀取單個字元。

import java.util.Scanner;
public class ContentsOfFile {
   public static void main(String args[]) throws Exception {
      //Creating a Scanner object
      Scanner sc = new Scanner(System.in);
      //Creating a StringBuffer object
      System.out.println("Enter your grade: (A, B, C, D)");
      char grade = sc.next().toCharArray()[0];
      if(grade == 'A'){
         System.out.println("You are very good, you have been promoted");
      }else if(grade=='B'){
         System.out.println("You are good, you have been promoted");
      }else if(grade=='C'){
         System.out.println("You are average, you have been " + "promoted, you need to work hard");
      }else if(grade=='D'){
         System.out.println("You are not promoted, try again");
      }else {
         System.out.println("Improper input");
      }
   }
}

輸出

Enter your grade: (A, B, C, D)
C
You are average, you have been promoted, you need to work hard

更新於:2020年7月2日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.