Java实现句子去空格功能时遇空格即停止输出问题求助
Java去除句子空白字符问题修复
问题根因
代码使用的scnr.next()方法默认以空白字符作为读取终止分隔符,输入带空格的句子时,只会读取第一个空格前的内容存入inputWords变量,后续整句内容没有被程序读取到,因此输出在第一个空格位置就停止。
修复方法
将代码中inputWords = scnr.next();替换为inputWords = scnr.nextLine();即可。nextLine()方法会读取整行输入内容,直到遇到换行符才终止,可完整获取带空格的整句输入。
修改后可正常运行的完整代码如下:
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String inputWords; char space = ' '; int i; inputWords = scnr.nextLine(); for (i = 0; i < inputWords.length(); ++i) { if (inputWords.charAt(i) != space) { System.out.print(inputWords.charAt(i)); } } } }
可选优化
如果需要去除所有类型的空白字符(包括制表符、全角空格、换行符等,不止普通半角空格),可以直接使用字符串替换方法简化代码,无需手动遍历判断:
import java.util.Scanner; public class LabProgram { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); String inputWords = scnr.nextLine(); // 正则\s匹配所有空白字符,替换为空字符串即可 String result = inputWords.replaceAll("\\s", ""); System.out.print(result); } }
内容的提问来源于stack exchange,提问作者Elder Son
相关产品推荐
相关产品推荐

