Java 我可以在split()中使用字符串数组来指定分隔符吗?
java/编码新手,正在努力掌握它,因此提前感谢您的帮助 我使用一组运算符作为分隔符来拆分这个字符串“s”Java 我可以在split()中使用字符串数组来指定分隔符吗?,java,arrays,split,delimiter,Java,Arrays,Split,Delimiter,java/编码新手,正在努力掌握它,因此提前感谢您的帮助 我使用一组运算符作为分隔符来拆分这个字符串“s” String[]workableParts=s.split((? 一个可能的选择是使用Arrays.toString(ops);将字符串数组转换为字符串,并在正则表达式中使用该字符串。 这将返回格式为[-,+,*,/,…]的字符串 现在,您可以将,替换为空字符串“”,并在正则表达式中使用子字符串 private String[]ops={-”、“+”、“*”、“/”、“%”、“^”、“=”
String[]workableParts=s.split((?
一个可能的选择是使用Arrays.toString(ops);
将字符串数组转换为字符串,并在正则表达式中使用该字符串。
这将返回格式为[-,+,*,/,…]
的字符串
现在,您可以将,
替换为空字符串“”
,并在正则表达式中使用子字符串
private String[]ops={-”、“+”、“*”、“/”、“%”、“^”、“=”};
String joinedOps=Arrays.toString(strArray);
joinedOps=joinedOps.substring(1,str.length()-1)。替换(“,”,”);
字符串regex=“…..”+joinedOps+”;
您可以这样做。定义您自己的拆分方法并在其中构建正则表达式。更改ops数组时,您将修改正则表达式
注意:在放置操作时必须小心,以免它们构造意外的字符类。例如,-
应位于前面,而^
不应位于前面
static String[] ops = { "-", "+", "*", "/", "%", "^", "=" };
public static void main(String[] args) {
String s = "7+7-8^2";
String[] workableParts = opSplit(s);
System.out.println(Arrays.toString(workableParts));
}
印刷品
[7, +, 7, -, 8, ^, 2]
方法
public static String[] opSplit(String s) {
String op = String.join("", ops);
String regex = "(?<=[" + op + "])|(?=[" + op + "])";
return s.split(regex);
}
公共静态字符串[]opSplit(字符串s){
String op=String.join(“,ops);
String正则表达式=((或)<代码>”[“+字符串。连接”(“,”,OPS)+“>”。“这些代码用于“但不在”代码> >代码> >代码> > /CUT>中间,而不是“代码> >代码>是一个运算符,它是C、C++、java、python、js、GAWK和perl,以及一些外壳,当然也不是任何多字符操作符(s)。.谢谢!这正是我需要的帮助-非常感谢:)