从动态字符串中获取运算符之前的子字符串



我有一个字符串,类似于"name=mita和salary>10000"。从中我只需要得到姓名和薪资属性。我将有一个动态字符串,我只需要它上的属性before运算符。像这里一样,我需要获取r before=和>操作人员我可以在字符串中有多个相同类型的条件。我可以请任何人在Java8中的运算符之前获取字符串的可行方法请找到以下示例字符串和预期输出:

String str ="name = 'mita' and salary> 10000" ;
//output expected name, salary
String str1 = "role!= 'software engineer' and salary < 50000 and surname='mitra'";
// output expected role,salary,surname
String str2 = "name= 'dev' and role!= 'software engineer' and salary < 50000 and surname='mitra'";
// output expected name,role,salary,surname

您可以使用String类的split方法和Regex:

String abc = "name = 'mita' and salary> 10000";
List<String> collect = Stream.of(abc.split("and|or"))
.map(String::trim)
.map(str -> str.split("[^a-zA-Z0-9']")[0])
.collect(Collectors.toList());
System.out.println(collect);

最新更新