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

Java实现firstName、lastName合法性校验时自定义函数异常排查

代码问题根因
  • 逻辑判断条件错误:需求要求字符满足「是字母 或 空格」即可,但现有代码的两个if判断要求字符必须同时是字母和空格才能通过校验,逻辑完全相悖。
  • 循环提前终止:return true 语句写在了for循环内部,遍历第一个字符后就会直接返回结果,完全不会校验后续字符,是输入非法内容仍返回true的核心原因。
  • 缺少空值校验:如果传入的name是null,会直接触发空指针异常。
修复后实现代码
public static boolean checkValidName(String name){
    // 空值、全空格场景校验,可根据业务需求调整返回规则
    if (name == null || name.trim().isEmpty()) {
        return false;
    }
    for(int i = 0; i < name.length(); ++i){
        char ch = name.charAt(i);
        // 只要字符既不是字母也不是空格,直接判定不合法
        if(!Character.isLetter(ch) && !Character.isWhitespace(ch)){
            return false;
        }
    }
    // 所有字符校验通过才返回合法
    return true;
}
逻辑说明
  • 新增空值防御逻辑,避免运行时空指针异常,空串、全空格的返回结果可根据业务需求自行调整
  • 遍历所有字符,只要出现一个既不是字母也不是空格的字符(包含数字、特殊符号等),立刻返回false
  • 全部字符校验完成后才返回true,完全匹配「仅允许输入字母或空格,包含数字返回false」的需求规则

内容的提问来源于stack exchange,提问作者高颜值の美食

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:42:02