Java:含多字符的坐标字符串转数字数组的实现方法
嘿,这个转换需求挺简单的,我给你准备了两种主流编程语言的实现方案,不管你用JavaScript还是Python都能轻松搞定:
JavaScript 解决方案
核心思路是用正则表达式提取所有连续的数字,再把它们转换成数字类型组成数组:
// 示例输入 const coordsStr = "(13,26)-(1,16)"; // 提取所有数字并转换为数组 const coordsArray = coordsStr.match(/\d+/g).map(Number); console.log(coordsArray); // 输出: [13, 26, 1, 16]
关键步骤说明:
/\d+/g是全局匹配正则,能精准捕获所有连续的数字(不管是1位还是多位)match()方法会返回所有匹配到的数字字符串数组map(Number)把每个字符串元素转换成数字类型
测试单数字场景:
const singleDigitStr = "(1,2)-(5,7)"; const singleDigitArray = singleDigitStr.match(/\d+/g).map(Number); console.log(singleDigitArray); // 输出: [1, 2, 5, 7]
Python 解决方案
同样用正则提取数字,再转换为整数列表:
import re # 示例输入 coords_str = "(13,26)-(1,16)" # 提取所有数字并转换为整数数组 coords_array = list(map(int, re.findall(r'\d+', coords_str))) print(coords_array) # 输出: [13, 26, 1, 16]
关键步骤说明:
re.findall(r'\d+', coords_str)会返回所有匹配到的数字字符串列表map(int, ...)把每个字符串转换成整数list()把map对象转换成标准Python列表
测试单数字场景:
single_digit_str = "(1,2)-(5,7)" single_digit_array = list(map(int, re.findall(r'\d+', single_digit_str))) print(single_digit_array) # 输出: [1, 2, 5, 7]
小提示
这种正则方案兼容性很强,就算你的坐标字符串里混了空格(比如 "(13, 26) - (1,16)"),也能正确提取数字,不用额外处理格式问题。
内容的提问来源于stack exchange,提问作者Desertfalcon622
相关产品推荐
相关产品推荐

