Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多级字符串拆分_Java - Fatal编程技术网

Java 多级字符串拆分

Java 多级字符串拆分,java,Java,所以我的要求是这个的延伸: 我的输入字符串如下所示: FEES_1>100和FEES_2您可以使用包含正则表达式的代码根据需要解析值 public static void main(String[] args) { String str = "FEES_1 > 100 AND FEES_2 <= 200 OR FEES_3 <= 500"; Pattern p = Pattern.compile("(?:^|(AND|OR))\\s*(\\w+)\\s+([&l

所以我的要求是这个的延伸:

我的输入字符串如下所示:


FEES_1>100和FEES_2您可以使用包含正则表达式的代码根据需要解析值

public static void main(String[] args) {
    String str = "FEES_1 > 100 AND FEES_2 <= 200 OR FEES_3 <= 500";
    Pattern p = Pattern.compile("(?:^|(AND|OR))\\s*(\\w+)\\s+([<>]=?)\\s+(\\d+)\\s*(?=(AND|OR|$))");
    Matcher m = p.matcher(str);
    for (int i = 0; m.find(); i++) {
        System.out.println("Iteration " + (i + 1) + ":");
        System.out.println(String.format("Operands: [%s ,  %s ]", m.group(2), m.group(4)));
        System.out.println("Relational Operator: " + m.group(3));
        System.out.println("Conditional Operator: " + m.group(1));
        System.out.println();
    }
}
publicstaticvoidmain(字符串[]args){

String str=“FEES\u 1>100和FEES\u 2@Warren如果您100%确定输入字符串是这种格式,那么您可以简单地执行类似的操作。它简单明了,不需要任何正则表达式

String[] parts = string.split(" ");
将输入字符串按空格分割,然后对于每个后续迭代,可以这样打印

int end = (parts.length + 1)/4;
for(int i =0;i<end;i++){
    System.out.println("Iteration : " + (i+1));

    System.out.println("Operands: [ " + parts[4*i] + " , " + parts[4*i + 2] + "]");

    System.out.println("Relational Operator: " + parts[4*i + 1]);

    System.out.println("Conditional Operator: " + ((i>0)?parts[4*i - 1]:null));
}
int-end=(parts.length+1)/4;
对于(inti=0;i0)?部分[4*i-1]:空);
}

您可以使用与上一个问题相同的方法,在使用关系运算符拆分之前,先在
和|或
上拆分。
String[] parts = string.split(" ");
int end = (parts.length + 1)/4;
for(int i =0;i<end;i++){
    System.out.println("Iteration : " + (i+1));

    System.out.println("Operands: [ " + parts[4*i] + " , " + parts[4*i + 2] + "]");

    System.out.println("Relational Operator: " + parts[4*i + 1]);

    System.out.println("Conditional Operator: " + ((i>0)?parts[4*i - 1]:null));
}