使用多个运算符分隔符分割Java字符串

时间:2014-03-26 22:28:10

标签: java split delimiter

我需要在任何一个运算符的第一次出现时将字符串分成两部分:

||,&&,==,!=,<,>,< =,> =,+, - ,*,/和%。

我认为string.split()可能是我最好的选择,但我不确定。我的问题是,我不知道如何将所有这些符号合并到split()的分隔符字符串中,或​​者如果可能的话。

所以,我的问题是,我如何创建一个包含所有这些运算符的分隔符字符串?如果不可能,最好的替代方法是什么?谢谢!

2 个答案:

答案 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.splithttp://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String,%20int%29的javadoc。

有两种实现方式。我使用的那个允许指定结果数组可能有多大的limit。因此,在您的一个“控制”字符首次出现时,String会被拆分并返回。

答案 1 :(得分:0)

myString.split("(\\|\\|)|(&&)|(==)|(!=)|(<=)|(>=)|[\\+\\*/%<>]");

我认为应该这样做 - 虽然这会在所有事件中分裂,而不仅仅是第一次......