如何在忽略空格判断回文后恢复原空格输出?(Java回文作业)
解决Java回文判断中保留原输入空格输出的问题
你的代码核心问题是直接覆盖了原输入字符串:执行wasabi = wasabi.replace(" ","");后,原带空格的输入内容已经被替换掉了,所以输出时自然拿不到带空格的版本。只需要保留原输入的副本,就能解决这个问题。
修改后的代码
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner twice = new Scanner(System.in); // 保留原输入的副本,不做任何修改 String originalWasabi = twice.nextLine(); // 用新变量处理空格去除、反转和判断逻辑 String processedWasabi = originalWasabi.replace(" ",""); String ibasaw = ""; for(int i = processedWasabi.length()-1;i>=0;i--) { ibasaw=ibasaw+processedWasabi.charAt(i); } if(processedWasabi.toLowerCase().equals(ibasaw.toLowerCase())) { // 输出时调用原输入变量,保留空格格式 System.out.println("palindrome: " + originalWasabi); } else { System.out.println("not a palindrome: " + originalWasabi); } } }
关键改动说明
- 新增
originalWasabi变量存储用户输入的原始内容,全程不修改; - 用
processedWasabi变量单独处理空格去除、反转和回文判断逻辑; - 输出结果时使用
originalWasabi,确保显示带空格的原始输入格式。
这样不管输入是race car还是其他带空格的内容,判断逻辑会忽略空格,输出却能完整保留原始格式。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

