2011-11-30 128 views
8

我在java中的减号操作有一个小问题。当用户按'退格键'时,我想让用户键入的字符被从存在的单词中移除。 e.g 字= MYNAME 和一个退格 字后= mynam对字符串进行减号操作

这是有点什么,我有:

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

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

回答

8

你这样做完全错了。您需要将0中的substring设置为字符串的长度减1。所以:

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

真棒,这是有道理的。我尝试使用' - ',因为+正在工作。我在网上找不到任何参考资料(可能有些东西在那里,只是我没有看到) – user1005253

0

为了方便起见,Java支持字符串与'+'符号连接。这是一个类类型作为操作数的二元运算符。请参阅Java语言规范中的String concatenation operator

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

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

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

没有对应的运算符来允许从字符串中删除字符。

0

您应该调查StringBuilder类,如:一个新的字符或

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

sentence.append(a); 

,那就可以当:

StringBuilder sentence = new StringBuilder(); 

然后,你可以这样做想要使用字符串,请使用:

String s = sentence.toString();