对字符串执行减号操作

时间:2011-11-30 18:09:25

标签: java string

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

这就是我所拥有的:

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

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

4 个答案:

答案 0 :(得分:11)

你做错了。您需要substring0到字符串的长度减一。所以:

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

答案 1 :(得分:1)

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

Java不支持String和char之间的' - '运算符的重载。

相反,您可以通过添加前后的子字符串来删除字符串中的字符。

答案 2 :(得分:0)

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

没有相应的运算符+允许您从字符串中删除字符。

答案 3 :(得分:0)

您应该研究StringBuilder类,例如:

StringBuilder sentence = new StringBuilder();

然后你可以做类似的事情:

sentence.append(a);

表示新角色或

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

然后,当您确实想要使用该字符串时,请使用:

String s = sentence.toString();