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’。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP