对字符串执行减号运算

2022-09-04 02:54:11

我对java中的负号操作有一个小问题。当用户按“退格”键时,我希望用户键入的字符从存在的单词中删除。例如,单词 = myname,在一个退格词之后 = mynam

这有点像我所拥有的:

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

添加操作工作正常。因此,如果我添加一个字母,它就会添加到现有单词中。但是,减号不起作用。我在这里错过了什么吗?还是完全做错了?


答案 1

字符串没有与运算符串联相对应的任何类型的字符减法。您需要将子字符串从字符串的开头取为结尾之前的子字符串;这是除最后一个字符之外的整个字符串。所以:+

sentence = sentence.substring(0, sentence.length() - 1);

答案 2

为方便起见,Java 支持使用“+”号进行字符串连接。这是一个以类类型作为操作数的二元运算符。请参见 Java 语言规范中的字符串串联运算符

Java 不支持字符串和字符之间的“-”运算符重载。

相反,您可以通过在前面和之后添加子字符串来从字符串中删除字符。