一个字符串包含另一个字符

时间:2014-04-08 05:57:57

标签: java string compare

在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

3 个答案:

答案 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(","));

愿这对你有所帮助。