-1
我正在用Java編碼一個基本的telnet服務器,我想處理由'\ b'表示的退格終端控制字符。 退格字符刪除/刪除字符串中的前一個字符。如何在Java中處理退格終端控制字符?
我目前使用下面的示例方法來成功實現這一點,但沒有人知道更清潔/更有效的方法嗎?
非常感謝您提供的任何幫助。
/*
Example input:
"This is a dog\b\b\bcat"
"\b\b\bThis is x\b a cat"
"\b\b\bThis\b\b\bThis is a dog\b\b\bcat"
*/
private String processBackspace(String input)
{
StringBuilder output = new StringBuilder();
int backSpaceCount = 0, index = 0;
boolean isBackSpace = false;
for (int i = input.length() - 1; i >= 0; i--)
{
char c = input.charAt(i);
if (c == '\b')
{
isBackSpace = true;
backSpaceCount++;
}
else
isBackSpace = false;
if (!isBackSpace)
{
index = i - backSpaceCount;
if (index >= 0)
output.append(input.charAt(index));
}
}
output.reverse();
return output.toString();
}
代碼審查的問題真的不適合堆棧溢出問題的標準。也許你應該嘗試http://codereview.stackexchange.com?我已經投票結束了「脫離主題」。 – 2013-05-05 06:11:25