在java中需要有关String概念的帮助,
String s1="Java is oop probgramming, R1|R2|R4|R5|R";
String s2="R";
String s3="R2";
String s4="R5";
我希望在,
之后将s2,s3,s4与s1字符串进行比较
我试过休息
System.out.println(s3.matches(s1.substring(Options1.indexOf(","), s1.indexOf("|"))));
System.out.println(s2.matches(s1.substring(Options1.indexOf(","), s1.indexOf("|"))));
我得到了错误的两个陈述。
我希望当我将s2
字符串与s1
进行比较时,它应true
。
答案 0 :(得分:3)
我认为只需使用String#contains
-
s1.contains(s2);
s1.contains(s3);
答案 1 :(得分:0)
也许你想要这样的东西:
String s1="Java is oop programming, R1|R2|R4|R5|R";
String s2="R";
String s3="R2";
String s4="R5";
String[] validTargets = new String[]{s2,s3,s4};
String alternatives = s1.split(",")[1].trim();
for(String s: alternatives.split("|")){
for(String t: validTargets){
if(s.matches(t)) { //you can also use equals() here..
System.out.println("they are matched!");
}
}
}
它会将|
之后由,
分隔的子字符串与您的目标(在这种情况下为s2,s3,s4)进行比较,并检查它们是否完全相同。
答案 2 :(得分:0)
您可以使用如下所示的正则表达式:
System.out.println(s1.matches("(?i).*"+s2+"*"));
System.out.println(s1.matches("(?i).*"+s3+"*"));
System.out.println(s1.matches("(?i).*"+s4+"*"));
如果你想在,
之后比得到字符串s1
的子字符串,而不是使用上面的代码。
s1 = s1.substring(s1.indexOf(","));
愿这对你有所帮助。