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

Swift如何获取字符串中数字子串长度并生成对应长度数组

实现方案

核心逻辑为通过正则表达式匹配所有连续的纯数字子串,再逐一计算子串长度存入目标数组即可,以下是不同主流语言的实现代码:

Python 实现

import re

main_str = "90000+8000-1000*10"
# 匹配所有连续数字序列
num_list = re.findall(r'\d+', main_str)
substringLength = [len(item) for item in num_list]

# 验证输出
print(substringLength[0]) # 输出 5
print(substringLength[1]) # 输出 4

JavaScript 实现

const mainStr = "90000+8000-1000*10";
// 匹配所有连续数字序列
const numList = mainStr.match(/\d+/g);
const substringLength = numList.map(item => item.length);

// 验证输出
console.log(substringLength[0]); // 输出 5
console.log(substringLength[1]); // 输出 4

Java 实现

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

public class CalcNumLength {
    public static void main(String[] args) {
        String mainStr = "90000+8000-1000*10";
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(mainStr);
        ArrayList<Integer> substringLength = new ArrayList<>();
        while (matcher.find()) {
            substringLength.add(matcher.group().length());
        }
        // 验证输出
        System.out.println(substringLength.get(0)); // 输出 5
        System.out.println(substringLength.get(1)); // 输出 4
    }
}

结果说明

最终得到的substringLength数组完整值为[5,4,4,2],分别对应数字串90000、8000、1000、10的长度,完全符合要求的调用效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:09:03