Java 如何从文本字符串中删除字符

Java 如何从文本字符串中删除字符,java,processing,Java,Processing,如何通过按back space键从文本字符串中删除字符。 这就是我目前所得到的。它只删除最后一个字符 if (keyPressed) { if (key != '\n' && key != CODED) { if (typing.length() < 5){ typing = typing + key; } } if (key == BACKSPACE) { if (typing

如何通过按back space键从文本字符串中删除字符。 这就是我目前所得到的。它只删除最后一个字符

if (keyPressed) {
    if (key != '\n' && key != CODED) {
        if (typing.length() < 5){
            typing = typing + key;
        }
    }
    if (key == BACKSPACE) {
        if (typing.length() > 0) {
            typing = typing.substring(0, typing.length()-1);
        }
    }
}

text(typing, 345, 372);
if(按键){
如果(键!='\n'&&key!=编码){
if(键入.length()<5){
打字=打字+按键;
}
}
如果(键==退格){
if(键入.length()>0){
typing=typing.substring(0,typing.length()-1);
}
}
}
文本(打字,345372);

这是因为
退格
,所以当
键入.length()
小于
5
时,按
退格
可以满足这两个条件。当它达到
5
时,它只满足第二个条件:
if(key==BACKSPACE)
使其工作,使其回到
5
以下,使其不再工作

作为测试,请尝试:
if(key!='\n'&&key!=CODED&&key!=BACKSPACE)
但是我想你可能需要一个
开关(键)
来完成这项工作

另外,您最好使用
void keyPressed()
keyreased()
keyTyped()

在draw()中,不是按
键,而是按该字段。或者您需要自己处理按键重复…

这是因为
BACKSPACE
,所以当
键入.length()
小于
5
并且按
BACKSPACE
时,您满足这两个条件。当它达到
5
时,它只满足第二个条件:
if(key==BACKSPACE)
使其工作,使其回到
5
以下,使其不再工作

作为测试,请尝试:
if(key!='\n'&&key!=CODED&&key!=BACKSPACE)
但是我想你可能需要一个
开关(键)
来完成这项工作

另外,您最好使用
void keyPressed()
keyreased()
keyTyped()

在draw()中,不是按
键,而是按该字段。或者您需要自己处理键重复…

字符串来自何处?你在使用GUI吗?把你的
键==BACKSPACE
放在if(按键)按钮内谢谢你Bhavik Shah。我怎么没看到呢???@MadProgrammer。。子字符串是否将子字符串从
startIndex
提取到
endIndex-1
?所以它应该是
typing.length()-1
。运算代码的这一部分是正确的。@MadProgrammer
substring
给出的字符串从指定的beginIndex开始,并扩展到索引endIndex-1处的字符。因此,如果只想删除最后一个字符,为什么不使用
typing=typing.substring(0,typing.length()-1)字符串来自何处?你在使用GUI吗?把你的
键==BACKSPACE
放在if(按键)按钮内谢谢你Bhavik Shah。我怎么没看到呢???@MadProgrammer。。子字符串是否将子字符串从
startIndex
提取到
endIndex-1
?所以它应该是
typing.length()-1
。运算代码的这一部分是正确的。@MadProgrammer
substring
给出的字符串从指定的beginIndex开始,并扩展到索引endIndex-1处的字符。因此,如果只想删除最后一个字符,为什么不使用
typing=typing.substring(0,typing.length()-1)