我正在创建带有退格按钮的计算器应用程序,并且需要删除不是空格的字符。
说我有一个字符串,例如:
String s = "1 + 2 - 3";
我希望能够单击该按钮,然后先将其删除。 如果我再次单击该按钮,则想删除“-”本身,而不是删除“-”之后的空格。
我最初尝试的方法是:
s = s.replaceAll(" ", "");
s = s.substring(0,field.length()-1);
s = s.replaceAll("", " ").trim();
我需要空格的唯一原因是有一个用于评估表达式的类,并且需要空格才能正确地对其进行评估。
对于我现在拥有的内容,如果我要单击退格键并删除“ 3”,然后单击另一个按钮(如2),我将得到:
"1 + 2 -2"
但是,我想要的是:
"1 + 2 - 2"
答案 0 :(得分:1)
技巧是在删除字符时也使用.trim()
来删除空格:
static String removeAChar(String s) { //1st trim() to be sure, 2nd trim() to remove extra space
return s.trim().substring(0, s.length() - 1).trim();
}
这将给出:
public static void main(String[] args) {
String s = "h e l l o";
System.out.println(s);
for (int i = 0; i < 4; i++) {
s = removeAChar(s);
System.out.println(s);
}
}
/*
h e l l o
h e l l
h e l
h e
h
答案 1 :(得分:0)
Trim方法还将删除所有前导空格。因此,如果您有“ h e l l o”,它将删除“ h”之前的第一个空格。如果您不想这样做,这是一个解决方案
spring.main.allow-bean-definition-overriding=true