Я кодирую базовый сервер telnet в Java, и я хотел бы обработать управляющий символ терминала backspace, обозначенный '\ b'. Символ обратного пробела удаляет/удаляет предшествующий символ в строке.Как обрабатывать символ управления терминалом backspace в 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? Я проголосовал за закрытие как «вне темы». –