我在java中的减号操作有一个小问题。当用户按下“退格”键时,我希望用户键入的字符被从存在的单词中删除。 例如 word = myname 并在一个退格后 word = mynam
这就是我所拥有的:
String sentence = "";
char c = evt.getKeyChar();
if(c == '\b') {
sentence = sentence - c;
} else {
sentence = sentence + c;
}
添加操作有效。因此,如果我添加一个字母,它会添加到现有单词中。但是,减号不起作用。我在这里错过了什么吗?或者完全错了?
答案 0 :(得分:11)
你做错了。您需要substring
从0
到字符串的长度减一。所以:
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();