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

如何在字符串字符板上添加数字?附现有Java字符板显示代码

实现向字符板添加数字的解决方案

嘿,我来帮你搞定这个需求!你的代码核心是遍历字符串并提取字母,将它们格式化成带|分隔的行输出。要添加数字支持,只需要扩展字符的判断范围,把数字也纳入保留的范畴即可。

修改后的完整代码

public class CharacterBoard {
    public static void main(String[] args) {
        int a;
        // 可自行在字符串中加入数字测试,比如示例里的1、2、3、4
        String s = "\nLLUA1\nUELB2\nPIEA3\nNMET4";
        // 用StringBuilder优化拼接效率,避免频繁创建String对象
        StringBuilder board = new StringBuilder();
        
        for (int i = 0; i < s.length(); i++) {
            char currentChar = s.charAt(i);
            a = (int) currentChar;
            
            // 扩展判断条件:包含大小写字母 + 数字(ASCII 48-57对应'0'-'9')
            if ((a >= 97 && a <= 122) || (a >= 65 && a <= 90) || (a >= 48 && a <= 57)) {
                board.append(currentChar).append(" | ");
            } else if (board.length() > 0) {
                // 处理换行等非目标字符:如果当前board有内容,先输出再清空
                System.out.println(board);
                board.setLength(0); // 清空StringBuilder
            }
        }
        
        // 处理最后一行剩余的内容
        if (board.length() > 0) {
            System.out.println(board);
        }
    }
}

关键改动说明

  • 扩展字符判断条件:在原有的字母判断基础上,加入了(a >= 48 && a <= 57)——这对应数字字符0到9的ASCII范围,这样数字就会和字母一样被添加到字符板中。
  • 用StringBuilder优化拼接:原代码中board = board + ...的方式会频繁创建新的String对象,对于较长的字符板效率很低。改用StringBuilder的append方法可以大幅提升性能。
  • 简化分支逻辑:原代码里的多个else if分支被合并成一个——只要board有内容,遇到非目标字符就输出并清空,代码更简洁易读。
  • 完善最后一行处理:补全了原代码未写完的末尾判断,确保遍历结束后剩余的字符板内容也能正常输出。

可选优化:去掉末尾多余分隔符

如果不想让每行末尾出现多余的|,可以在输出前添加一段处理逻辑:

if (board.length() > 0) {
    // 去掉末尾多余的" | "(长度为3的字符段)
    if (board.length() >= 3) {
        board.setLength(board.length() - 3);
    }
    System.out.println(board);
}

优化后输出示例:

LLUA | 1
UELB | 2
PIEA | 3
NMET | 4

内容的提问来源于stack exchange,提问作者5-May

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:38:42