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

Java中处理空值,拼接firstName、middleName、lastName获取员工全名

实现Employee类的getFullName方法(处理null与空字符串)

嗨,我来帮你搞定这个全名拼接的问题。核心需求就是把firstName、middleName、lastName三个字段组合成全名,但得妥善处理null、空字符串甚至纯空格的情况,避免出现多余空格或者奇怪的空内容。

方案一:用列表收集有效字段(Java 7及以上可用)

这是最直观的实现方式,逻辑清晰,容易维护:

import java.util.ArrayList;
import java.util.List;

public class Employee {
    private String firstName;
    private String middleName;
    private String lastName;

    // 这里省略setters和getters

    public String getFullName() {
        List<String> validNameParts = new ArrayList<>();

        // 检查并添加firstName
        if (firstName != null && !firstName.trim().isEmpty()) {
            validNameParts.add(firstName.trim());
        }
        // 检查并添加middleName
        if (middleName != null && !middleName.trim().isEmpty()) {
            validNameParts.add(middleName.trim());
        }
        // 检查并添加lastName
        if (lastName != null && !lastName.trim().isEmpty()) {
            validNameParts.add(lastName.trim());
        }

        // 用空格拼接所有有效部分,无有效部分则返回空字符串
        return String.join(" ", validNameParts);
    }
}

方案二:用Stream简化代码(Java 8及以上可用)

如果你的项目用的是Java 8或更高版本,用Stream API可以让代码更简洁,逻辑和上面完全一致:

import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Employee {
    private String firstName;
    private String middleName;
    private String lastName;

    // 这里省略setters和getters

    public String getFullName() {
        return Stream.of(firstName, middleName, lastName)
                .filter(part -> part != null && !part.trim().isEmpty()) // 过滤无效字段
                .map(String::trim) // 去除首尾空格
                .collect(Collectors.joining(" ")); // 用空格拼接
    }
}

测试场景验证

这两个方案都能正确处理各种边界情况:

  • 三个字段都有效:firstName="John", middleName="Michael", lastName="Doe" → 返回 "John Michael Doe"
  • middleName为null:firstName="Jane", middleName=null, lastName="Smith" → 返回 "Jane Smith"
  • 字段含纯空格:firstName=" Alice ", middleName="", lastName=" Brown " → 返回 "Alice Brown"
  • 所有字段无效:返回空字符串 ""

这样实现既保证了代码的健壮性,又能灵活应对各种输入情况~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:22:07