我需要在任何一个运算符的第一次出现时将字符串分成两部分:
||,&&,==,!=,<,>,< =,> =,+, - ,*,/和%。
我认为string.split()
可能是我最好的选择,但我不确定。我的问题是,我不知道如何将所有这些符号合并到split()的分隔符字符串中,或者如果可能的话。
所以,我的问题是,我如何创建一个包含所有这些运算符的分隔符字符串?如果不可能,最好的替代方法是什么?谢谢!
答案 0 :(得分:1)
所以这个小小的程序演示了如何做到这一点:
public class RegexpSplitter {
public static void main(String[] args) {
System.out.println(Arrays.toString(splitString("56&&78&&13")));
System.out.println(Arrays.toString(splitString("ab==cd")));
}
public static String[] splitString(String str) {
return str.split("\\|\\||&&|==|!=|<|>|<=|>=|\\+|-|\\*|/|%", 2);
}
}
输出结果为:
[56, 78&&13]
[ab, cd]
以下是String.split
:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29的javadoc。
有两种实现方式。我使用的那个允许指定结果数组可能有多大的limit
。因此,在您的一个“控制”字符首次出现时,String会被拆分并返回。
答案 1 :(得分:0)
myString.split("(\\|\\|)|(&&)|(==)|(!=)|(<=)|(>=)|[\\+\\*/%<>]");
我认为应该这样做 - 虽然这会在所有事件中分裂,而不仅仅是第一次......