Java 如何處理退格符?


退格符是一個特殊的字元,用 ‘\b’ 表示。它用於將游標向後移動一個字元。它屬於 Java 跳脫字元,這些字元與反斜槓 (\) 一起使用,對編譯器具有特殊含義。在本文中,我們將透過 Java 示例程式瞭解並學習 ‘\b’ 符號的實際應用。

退格符的工作原理

使用此跳脫字元時,可能會出現兩種情況。第一種是我們將退格符硬編碼到字串中;第二種是使用鍵盤輸入。

對於第一種情況,Java 本身並不處理退格符。它只將字元的位元組值寫入輸出流,然後終端或控制檯決定如何解釋它。有些終端可能會擦除前一個字元,而其他終端可能會顯示奇怪的符號,或者有些終端可能會忽略它。

讓我們用一個例子來理解前面的幾點

示例

public class BackspaceExample {
   public static void main(String[] args) {
      System.out.println("Tutorialss\bPoint");
   }
}

輸出 1

TutorialssPoint

但是,當上述程式碼在 VS Code 上編譯並執行時,它產生了以下結果。

輸出 2

TutorialsPoint

我們可以看到,兩個編譯器產生了不同的結果。因此,這證明了退格符的解釋取決於其編譯的終端。

當使用 ‘Scanner’ 類或任何其他輸入方法讀取使用者輸入時,Java 將退格符視為普通字元。它不會自動將其解釋為特殊操作。換句話說,當使用退格符時,控制檯將按原樣顯示退格符,並且不會從輸入中刪除前一個字元。

讓我們來看一個例子,我們將從使用者那裡獲取輸入,以便更好地理解

示例

import java.util.Scanner;
public class Input {
   public static void main(String []args) {
      Scanner read = new Scanner(System.in);
      System.out.println("Enter a String: ");
      while(read.hasNext()) { // runs till the last character
         String st = read.nextLine();
         System.out.println("String value: " + st);
      }
   }
}

輸出

Enter a String:
Shriansh\bKumar
String value: Shriansh\bKumar

如前所述,將退格符放入使用者輸入值中不會被視為特殊操作。我們可以看到,在輸出中,‘\b’ 字元按原樣列印。在上面的程式碼中,我們建立了一個 ‘Scanner’ 類的例項,並使用 while 迴圈讀取和寫入使用者提供的輸入。

結論

本文總結指出,我們不能依賴退格符來擦除 Java 字串中的任何字元,因為它在不同的終端或編譯器上的工作方式可能不同。此外,在處理使用者輸入時,Java 將退格符視為普通字元。如果我們想從 Java 字串中刪除字元,我們應該使用其他方法,例如 ‘substring’、‘replace’ 或 ‘StringBuilder’ 和 ‘StringBuffer’。

更新於:2023年7月20日

674 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.