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
相关产品推荐
相关产品推荐

