Java使用多个条件拆分字符串

Java使用多个条件拆分字符串,java,string,split,Java,String,Split,我想沿着几个不同的条件拆分一个字符串- 我知道有一个名为String.split(element)的Java字符串方法,它根据指定的元素将字符串拆分为数组 但是,在多个对象之间进行拆分似乎非常复杂——特别是在拆分必须发生在一系列元素的情况下 确切地说,我希望java拆分字符串 “a>=b”变成{“a”,“>=”,“b”} “a>b”变成{“a”,“>”,“b”} “a==b”变成{“a”,“==”,“b”} 我也一直在摆弄正则表达式,只是想看看如何精确地根据这个参数分割它,但我得到的最接近的

我想沿着几个不同的条件拆分一个字符串- 我知道有一个名为String.split(element)的Java字符串方法,它根据指定的元素将字符串拆分为数组

但是,在多个对象之间进行拆分似乎非常复杂——特别是在拆分必须发生在一系列元素的情况下

确切地说,我希望java拆分字符串

  • “a>=b”变成{“a”,“>=”,“b”}

  • “a>b”变成{“a”,“>”,“b”}

  • “a==b”变成{“a”,“==”,“b”}

我也一直在摆弄正则表达式,只是想看看如何精确地根据这个参数分割它,但我得到的最接近的结果是沿着单个字符分割

编辑:a和b是任意长度的字符串。我只想沿着不同类型的比较器“>”、“>=”、“=”

例如,a可以是“苹果”,b可以是“橙色”

因此,最后我希望字符串从“Apple>=Orange”变成
{“Apple”、“>=”、“Orange”}

以下代码适用于您的示例:

System.out.println(Arrays.asList("a<=b".split("\\b")));

System.out.println(Arrays.asList)(“a您可以使用正则表达式。无论您对变量使用a、b或abc,您都将获得组1中的第一个变量、组2中的条件和组3中的第二个变量

    Pattern pattern = Pattern.compile("(\\w+)([<=>]+)(\\w+)");
    Matcher matcher = pattern.matcher("var1>=ar2b");

    if(matcher.find()){
        System.out.println(matcher.group(1));
        System.out.println(matcher.group(2));
        System.out.println(matcher.group(3));
    }
Pattern=Pattern.compile(“(\\w+)([]+)(\\w+)”;
Matcher Matcher=pattern.Matcher(“var1>=ar2b”);
if(matcher.find()){
系统输出println(匹配器组(1));
系统输出println(匹配器组(2));
系统输出println(匹配器组(3));
}

您可以手工将其编码出来,然后使用任何您想要拆分的令牌,就像这样

public String[] splitString(String word)
{
    String[] pieces;
    String[] tokens = {"==", ">=", "<=","<", ">"};
    for(int i = 0; i < tokens.length; i++)
    {
        if(a.contains(tokens[i]))
        {
            pieces = {
                    word.substring(0, word.indexOf(tokens[i])), 
                    tokens[i], 
                    word.substring(word.indexOf(tokens[i]) + tokens[i].length(), word.length())};
            return pieces;
        }
    }
    return pieces;
}
公共字符串[]拆分字符串(字符串字)
{
弦[]件;

String[]tokens={“==”,“>=”,“拆分的条件是什么?我指定的条件正好符合我的要求。为什么不将字符串重写为a>=b,a=和>>之间的区别?我已经尝试了几天,现在仍然在学习我不明白它如何识别“>”与“>=”你的正则表达式所捕获的内容比预期的要多得多。我更喜欢这个正则表达式:
“(\\w+)+(compop)+”(\\w+)”
where
compop=“>|@KevinHu当这个答案起作用时,请注意它捕获的内容比你想要的要多得多。例如:“你好>>不“仍将匹配,并且您将得到
{“hello”、“>>”和“no”}
是的,如果您仅使用>,
a
,最好限制选项!!!!您的意思是
word