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

Java中如何按指定位数拆分数组元素与字符串内数字分组

Java 两类拆分需求实现方案

需求1:逗号分隔数字串中提取位数大于2的数字分组

实现思路

先将原始字符串按逗号分割为单个数字字符串,遍历所有元素筛选出长度大于2的项即可。

代码示例

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SplitLongNum {
    public static void main(String[] args) {
        String inputStr = "12,10,12914,10,641,10,11,11,2,10";
        // 分割后过滤长度大于2的数字分组
        List<String> result = Arrays.stream(inputStr.split(","))
                .filter(item -> item.length() > 2)
                .collect(Collectors.toList());
        // 输出结果:[12914, 641]
        System.out.println(result);
    }
}

需求2:指定数组元素定向拆分处理

实现思路

按需求定义两条拆分规则:

  1. 带字母的元素:通过正则分组匹配分离数字部分和字母部分
  2. 纯数字元素:仅对指定元素(或按规则匹配的元素)拆分为前缀+最后一位的结构
    如果需要调整拆分范围,只需修改纯数字元素的判断条件即可。

代码示例

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CustomSplit {
    // 匹配数字+字母组合的正则
    private static final Pattern NUM_LETTER_PATTERN = Pattern.compile("(\\d+)([a-zA-Z]+)");

    public static void main(String[] args) {
        List<String> inputList = Arrays.asList("12a", "129", "14a", "64", "1a", "11b", "2a");
        List<List<String>> result = new ArrayList<>();

        for (String item : inputList) {
            Matcher matcher = NUM_LETTER_PATTERN.matcher(item);
            if (matcher.matches()) {
                // 拆分数字和字母
                result.add(Arrays.asList(matcher.group(1), matcher.group(2)));
            } 
            // 此处可修改为仅指定元素拆分,比如item.equals("129") || item.equals("64")
            else if (item.matches("\\d+")) {
                // 纯数字元素拆分为前缀+最后一位
                String prefix = item.substring(0, item.length() - 1);
                String suffix = item.substring(item.length() - 1);
                result.add(Arrays.asList(prefix, suffix));
            } else {
                // 不符合规则的元素直接保留,可按需调整逻辑
                result.add(Arrays.asList(item));
            }
        }
        // 输出结果:[[12, a], [12, 9], [14, a], [6, 4], [1, a], [11, b], [2, a]]
        System.out.println(result);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:18:02