【发布时间】:2019-02-18 07:13:59
【问题描述】:
我有一个字符串:
String stringProfile = "0,4.28 10,4.93 20,3.75";
我正在尝试将其变成如下数组:
double [][] values = {{0, 4.28}, {10, 4.93}, {20, 3.75}};
我已格式化字符串以删除所有空格并替换为逗号:
String stringProfileFormatted = stringProfile.replaceAll(" ", ",");
所以现在字符串stringProfileFormatted = "0,4.28,10,4.93,20,3.75";
然后我创建一个字符串数组:
String[] array = stringProfileFormatted.split("(?<!\\G\\d+),");
因此,对于 Array 中的每个元素,每 2 个逗号值的字符串。
不确定如何转换为二维数组。这甚至是正确的方法吗?
【问题讨论】:
-
你能指定你的意思是多维还是二维?您的示例是二维的,我猜您对二维数组感兴趣 - 请更正以避免混淆。您还可以做出任何其他有用的提示或假设吗?矩阵是否会受到最大维度的限制(我认为限制是否合理)?
-
抱歉,是的,它是一个二维数组。 2d 数组中的每个数组的固定长度为 2。如示例所示,它将成对
-
如果您的字符串严格遵循输入中显示的模式,即逗号分隔的两个值对,并且每个这样的对由空格分隔 - 那么解决这个问题很简单,只需将字符串拆分为 \\s+ ,然后用“,”分割分割后的字符串中的每个字符串,然后使用
Double.valueOf(string)获得双精度,创建一个新的一维数组并将其插入二维数组。不确定这是否更复杂。
标签: java arrays multidimensional-array