我有一个这样的字符串"2/-4+5.7*5*-7.9+3"
我想将它拆分为一个数组,使得元素只是浮点数的绝对值[2,4,5.7,5,7.9,3]
答案 0 :(得分:2)
你可以尝试匹配而不是拆分。
\\d+(?:\\.\\d+)?
根据一个或多个运算符( -
,*
,/
,+
)调整字符串将为您提供所需的输出
String test = "2/-4+5.7*5*-7.9+3";
System.out.println(Arrays.toString(test.split("[-/+*]+")));
<强>输出:强>
[2, 4, 5.7, 5, 7.9, 3]
答案 1 :(得分:0)
String s = "2/-4+5.7*5*-7.9+3";
Pattern p = Pattern.compile("[+-]?[0-9]+");
Matcher m = p.matcher(s);
int n1 = 0;
int n2 = 0;
while ( m.find() ) {
n1++;
}
float[] array = new float[n1];
while ( m.find() && n2 <= n1) {
array[n2] = Float.parseFloat(s.substring(m.start(), m.end()));
n2++;
}
答案 2 :(得分:0)
"2/-4+5.7*5*-7.9+3".split(/[\/\-\+\*]{1,}/)
结果:[“2”,“4”,“5.7”,“5”,“7.9”,“3”]
另外,你必须parseFloat()每个项目以获得数值