如果我有一个变量字符串,用于存储较大字符串中不同的字符部分,如何使用带有正则表达式的split命令将较大的字符串拆分为较小的字符串?
例如,字符串变量可以存储“def” 较大的字符串可能是“abcdefghi”
当使用正则表达式输入作为字符串变量执行split命令时,生成的拆分将如下所示:
ABC GHI
编辑:这是代码
String string = new String("2+22*5-1*2");
String multiply = new String("22*5");
int leftNum = Integer.parseInt(multiply.split("\\*")[0]);
int rightNum = Integer.parseInt(multiply.split("\\*")[1]);
System.out.println(string);
System.out.println(multiply);
System.out.println(leftNum * rightNum);
//the following should print "2+"
String left = string.split(multiply)[0];
System.out.println(left);
答案 0 :(得分:1)
"abcdefghi".split("def")
将产生{"abc", "ghi"}
。
答案 1 :(得分:0)
您必须转义*
以使用multiply
的内容作为正则表达式(split
的参数是正则表达式):
String regexp = multiply.replace("*", "\\*");
String left = string.split(regexp)[0];
这应打印预期结果(2+
)
答案 2 :(得分:0)
string.split("\\Q" + substring + "\\E");
\ Q和\ E为你排除元字符。