3 回答

TA贡献1827条经验 获得超4个赞
直接的解决方案:在循环中放置一个 if 块!
您现在正在无条件地添加字符。例如,您只能附加数字字符。那么任何其他东西,比如“-”,都不会出现在你的输出中!

TA贡献1784条经验 获得超9个赞
你可以尝试这样的事情。
public class App {
public static void main(String[] args) {
String input = "78-889-969-*)(963====";
StringBuilder builder = new StringBuilder();
for (int i = input.length() - 1; i >= 0; i--) {
if (input.charAt(i) >= 48 && input.charAt(i) <= 57) {
builder.append(input.charAt(i));
}
}
System.out.println("builder = " + builder.toString());
}
}
使用Character.isDigit()
public class App {
public static void main(String[] args) {
String input = "78-889-969-*)(963====";
StringBuilder builder = new StringBuilder();
for (int i = input.length() - 1; i >= 0; i--) {
if (Character.isDigit(input.charAt(i))) {
builder.append(input.charAt(i));
}
}
System.out.println("builder = " + builder.toString());
}
}

TA贡献1810条经验 获得超5个赞
将 for 循环替换为以下内容。
for (int i = num.length() - 1; i >= 0; i--)
{
if(num.charAt(i) == 45){
break;
}
reverse = reverse + num.charAt(i);
}`
45 是符号的 ASCII 值-。检查if(num.charAt(i) == 45)是否有-符号,如果有,它会在打印符号之前中断循环-。注意 - 循环在达到 i = 0 之前不会中断。
添加回答
举报