回答
Java不會「處理」它的角色。它所知道的只是一個字節流,操作系統表示它可以寫入字節,並且會很高興地將字節寫入其中,包括一個ASCII退格。
什麼發生當流接收到的字符與Java沒有任何關係時,它完全依賴於終端。有些終端會刪除前一個字符,有些終端會將退格字符顯示爲一些奇怪的字形,甚至是一個特殊的「退格字符」字形。有些人可能會完全放棄角色,如果他們無法解釋它的話,其他人(實際上大多數終端模擬器)的行爲將取決於他們的配置方式。但是,所有這些與Java無關,無論它們是由Java還是Perl寫的,或者是C++ cout
或其他任何東西,它們都會以這種方式行事。
它應該在Windows命令控制檯中工作得很好。這個bug可以識別爲一個Eclipse bug:bug 76936。另請參閱How to get backspace \b to work in Eclipse’s console?
你用System.out.println( 「... 」),這是本質上是System.out.print(「 ... \ n」)
不要使用.println,你只是刪除換行...
在這種情況下,println(「Hello \ b」)會發出「Hello \ b \ n」而不是「Hello \ n \ b」。這並不能解釋字形。 – helios 2011-06-08 11:40:49
要得到您想要的輸出即Hell
您需要在\b
後添加一個space
字符。因爲\b
只會將光標(虛擬)向後移動到1個位置,但不會將其刪除。你只能通過space
替換要刪除的字符。因此,嘗試下面的行獲得Hell
作爲輸出:
System.out.println("Hello\b ");
PS:該解決方案適用於Windows操作系統和Ubuntu操作系統。對於其他操作系統,它的行爲可能與上面@Kilian Foth所解釋的不同。
嘗試使用終端來執行您的類文件。
java classname
當IDE執行\ b時,它會自動忽略它。因爲IDE中沒有相應的庫來運行\ b。但是,如果你在終端中運行它,它可能會被執行。所有的終端都有這個庫。
你可能想編寫一個函數來做到這一點:
def static public String backspace (String str){
return str.substring(0,str.length-1)
}
- 1. Java庫逃脫/清理XML?
- 2. 逃脫的JavaScript
- 3. Django的 - 逃脫
- 4. 的Java刪除逃脫雙引號
- 5. GWT/JAVA未捕獲的異常逃脫
- 6. 逃脫在JavaScript
- 7. RSS逃脫HTML
- 8. 鏈接逃脫
- 9. Jsoup脫逃的iframe
- 10. Java SQL不使用setString逃脫
- 11. 如何逃脫「\」字符在Java中
- 12. 在java中脫逃特殊字符
- 13. Java正則表達式逃脫
- 14. Java:閱讀循環如何逃脫?
- 15. C#字符串格式:逃脫點
- 16. less.css - 如何風格/逃脫方括號
- 17. Content_tag逃脫數據
- 18. Rails和WiceGrid:HTML逃脫
- 19. 硒逃脫撇號
- 20. AngularJS秀逃脫HTML
- 21. du怎麼逃脫?
- 22. 不能逃脫autohotkeys
- 23. 輸出JSTL逃脫?
- 24. 加號逃脫C++
- 25. PDO逃脫斜線
- 26. 逃脫if語句
- 27. RegExp逃脫問題?
- 28. 如何逃脫的同時
- 29. 蟒蛇的逃脫序列
- 30. Rails的部分HTML逃脫
感謝,但它仍然沒有在Windows控制檯正常工作。你在機器上試過了嗎?也許這是我的系統問題。 – Alfred 2010-07-25 21:31:18
我在Windows控制檯(回車沒有換行符)中使用了\ r,它工作正常。我用它來顯示「處理NN%」chaging文本。 – helios 2011-06-08 11:39:21