Выполнение минус операции над строкой - PullRequest
10 голосов
/ 30 ноября 2011

У меня небольшая проблема с минусовой операцией в Java.Когда пользователь нажимает клавишу «Backspace», я хочу, чтобы символ, набранный пользователем, был убран из существующего слова.например, слово = мое имя и после одного возврата на одну позицию слово = mynam

Это то, что у меня есть:

String sentence = "";
char c = evt.getKeyChar();
if(c == '\b') {
  sentence = sentence - c;
} else {
  sentence = sentence + c;
}

Операция добавления работает.Поэтому, если я добавлю письмо, оно добавится к существующему слову.Однако минус не работает.Я что-то здесь упускаю?Или делает это совершенно неправильно?

Ответы [ 4 ]

11 голосов
/ 30 ноября 2011

Вы делаете это совершенно неправильно. Вам нужно substring от 0 до длины строки минус один. Итак:

sentence = sentence.substring(0, sentence.length() - 1);
1 голос
/ 30 ноября 2011

Для удобства Java поддерживает конкатенацию строк со знаком «+».Это один бинарный оператор с типом класса в качестве операнда.См. Оператор конкатенации строк в Спецификации языка Java.

Java не поддерживает перегрузку оператора '-' между строкой и символом.

Вместо этого вы можете удалить символ из строки, добавив подстроки до и после.

0 голосов
/ 30 ноября 2011

Вам следует изучить класс StringBuilder, например:

StringBuilder sentence = new StringBuilder();

Тогда вы можете сделать что-то вроде:

sentence.append(a);

для нового персонажа или

sentence.deleteCharAt(sentence.length() - 1);

Тогда, когда вы действительно хотите использовать строку, используйте:

String s = sentence.toString();
0 голосов
/ 30 ноября 2011
sentance = sentance.substring(0, sentance.length() - 1);

Нет соответствующего оператора для +, который позволяет вам удалить символ из строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...