You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:15:08