嘿伙计们,我正在尝试拆分一个数学表达式的字符串。
例如 - 1.1234-345 + 43 / 23.546 * 34 我想拆分 - + / *并保留所有数字。
我试过这个:
String[] newString = "242342.4242+424-32.545".split("[+-//*]");
但它不起作用,它也分裂了。它最后给了我数组中的5个数字,它应该给我3个数字。
新字符串应如下所示:
newString[0] = 242342.4242
newstring[1] = 424
newString[2] = 32.545
答案 0 :(得分:1)
public static void main(String[] args) {
// Using | in pattern
// \\ for special character
String[] newString = "242342.4242+424-32.545".split("\\+|-|\\*"); // +|-|*
System.out.println(Arrays.toString(newString));
// Output
// [242342.4242, 424, 32.545]
// In the real world. You need to handle Space too
// so using this pattern
// \\s*(\\+|-|\\*)\\s*
String[] newString2 = "242342.4242 + 424 - 32.545".split("\\s*(\\+|-|\\*)\\s*");
System.out.println(Arrays.toString(newString2));
// Output
// [242342.4242, 424, 32.545] - No spaces
}
答案 1 :(得分:0)
public class test
{
public static void main(String[] args)
{
String[] newString = "242342.4242+424-32.545".split("[-+*/]");
for (String s : newString)
{
System.out.println(s);
}
}
}