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

Java实验:移除非字母字符程序仅返回首个单词问题求助

问题解决:只能处理第一个单词的原因及修复

问题根源

你的代码里用了scnr.next()来获取输入,这个方法默认以空白字符(空格、换行等)作为分隔符,只会读取到第一个空格之前的内容。比如输入-Hello, 1 world$!时,uInput只会拿到-Hello,,后续的1 world$!根本没被读进程序,所以处理后只输出Hello。

修复方案

把读取输入的代码换成scnr.nextLine(),这个方法会读取整行输入,包含空格在内的所有字符,这样就能处理完整的输入内容了。另外,循环里直接用String拼接字符效率较低,推荐用StringBuilder来优化性能。

修改后的代码

import java.util.Scanner;

public class LabProgram {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      // 改用nextLine读取整行输入
      String uInput = scnr.nextLine();
      // 用StringBuilder优化字符串拼接
      StringBuilder result = new StringBuilder();
      
      for (int i = 0; i < uInput.length(); i++) {
         char c = uInput.charAt(i);
         if (Character.isLetter(c)) {
            result.append(c);
         }
      }
      System.out.println(result.toString());
   }
}

测试验证

输入-Hello, 1 world$!时,程序会读取整行内容,过滤非字母字符后输出Helloworld,符合实验要求。

内容的提问来源于stack exchange,提问作者aLop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:45:57