导读:本期聚焦于小伙伴创作的《Java字符串如何每隔四位添加空格?三种常用实现方法详解》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Java字符串如何每隔四位添加空格?三种常用实现方法详解》有用,将其分享出去将是对创作者最好的鼓励。

Java字符串格式化:每隔四位添加空格

在实际开发中,我们经常会遇到需要对字符串进行格式化处理的场景,比如将长数字串、身份证号、银行卡号等信息每隔四位添加一个空格,提升内容的可读性。Java提供了多种实现方式,本文将介绍几种常用的实现方法,并给出对应的代码示例。

方法一:使用循环遍历字符拼接

这是最直观的实现思路,我们可以遍历原始字符串的每个字符,每拼接四个字符就额外添加一个空格,最后处理末尾可能多余的空格即可。需要注意的是,如果原始字符串长度正好是四的倍数,最后会多出一个空格,需要做截取处理。

public class StringFormatUtil {
    /**
     * 每隔四位添加空格(循环遍历方式)
     * @param original 原始字符串
     * @return 格式化后的字符串
     */
    public static String addSpaceByLoop(String original) {
        if (original == null || original.isEmpty()) {
            return original;
        }
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < original.length(); i++) {
            // 每四个字符添加一个空格,注意第一个字符前不需要加空格
            if (i != 0 && i % 4 == 0) {
                result.append(" ");
            }
            result.append(original.charAt(i));
        }
        return result.toString();
    }

    public static void main(String[] args) {
        String testStr = "1234567890123456";
        String formatted = addSpaceByLoop(testStr);
        System.out.println("原始字符串:" + testStr);
        System.out.println("格式化后:" + formatted);
    }
}

上述代码中,我们通过StringBuilder来拼接字符串提升性能,遍历原始字符串时,判断当前索引是否为4的倍数且不是第一个字符,如果是就先添加空格再拼接当前字符。运行后输出结果为:1234 5678 9012 3456

方法二:使用正则表达式替换

正则表达式可以很方便地匹配固定长度的字符组,我们可以利用正向预查的语法,匹配每四个字符的前面位置,然后替换为空格。这种方式代码更简洁,不需要手动处理循环逻辑。

public class StringFormatUtil {
    /**
     * 每隔四位添加空格(正则替换方式)
     * @param original 原始字符串
     * @return 格式化后的字符串
     */
    public static String addSpaceByRegex(String original) {
        if (original == null || original.isEmpty()) {
            return original;
        }
        // 正向预查,匹配每四个字符前的位置,替换为空格
        return original.replaceAll("(.{4})(?=.)", "$1 ");
    }

    public static void main(String[] args) {
        String testStr = "abcdefghijklmnop";
        String formatted = addSpaceByRegex(testStr);
        System.out.println("原始字符串:" + testStr);
        System.out.println("格式化后:" + formatted);
    }
}

这里的正则表达式(.{4})(?=.)表示匹配任意四个字符,并且这四个字符后面还有至少一个字符(通过(?=.)正向预查实现),然后将匹配到的四个字符替换为$1 (即原四个字符加一个空格)。运行后输出结果为:abcd efgh ijkl mnop

方法三:使用StringBuilder按长度截取拼接

我们还可以通过循环每次截取四个字符的子串,拼接到结果中并添加空格,直到原始字符串剩余长度不足四位,最后拼接剩余部分。这种方式避免了正则的性能开销,也比纯字符遍历更容易理解。

public class StringFormatUtil {
    /**
     * 每隔四位添加空格(截取拼接方式)
     * @param original 原始字符串
     * @return 格式化后的字符串
     */
    public static String addSpaceBySubstring(String original) {
        if (original == null || original.isEmpty()) {
            return original;
        }
        StringBuilder result = new StringBuilder();
        int length = original.length();
        int index = 0;
        while (index < length) {
            // 截取剩余部分的前四个字符,如果不足四个就截取全部
            int end = Math.min(index + 4, length);
            result.append(original.substring(index, end));
            // 如果不是最后一段,就添加空格
            if (end < length) {
                result.append(" ");
            }
            index = end;
        }
        return result.toString();
    }

    public static void main(String[] args) {
        String testStr = "1234567890";
        String formatted = addSpaceBySubstring(testStr);
        System.out.println("原始字符串:" + testStr);
        System.out.println("格式化后:" + formatted);
    }
}

该方式通过substring方法每次截取固定长度的子串,判断当前截取的结束位置是否小于原始字符串总长度,如果是说明后面还有字符,就添加空格。运行后输出结果为:1234 5678 90,可以正确处理长度不是四倍数的情况。

三种方法对比

实现方式优点缺点适用场景
循环遍历字符拼接逻辑直观,容易理解,无额外依赖需要手动处理边界条件,代码稍长初学者理解逻辑,简单场景使用
正则表达式替换代码简洁,一行即可实现正则表达式有一定学习成本,复杂场景下性能略低熟悉正则,追求代码简洁的场景
截取拼接方式逻辑清晰,无正则开销,性能好需要理解截取逻辑对性能有要求,字符串较长的场景

实际开发中可以根据具体需求选择合适的实现方式,如果字符串长度较短,三种方式的性能差异可以忽略,优先选择可读性高的方式即可。

Java字符串格式化每隔四位加空格StringBuilder正则表达式字符串处理修改时间:2026-05-24 12:20:03

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。