public class Test2 {
public static void main(String[] args)
{
String country="india";
String arry[]={"indians are great","i am india","govt","dhoomindian","prashindiahim","i jdsdindi a","i n d i a"};
Pattern p = Pattern.compile(".*" + country + ".*");
for (String stringVal : arry)
{
Matcher m = p.matcher(stringVal);
System.out.println("test1..."+" -->"+stringVal+" "+m.find());
System.out.println("test2..."+" -->"+stringVal+" "+m.find());
}
}
}
OUTPUT::
*test1... -->indians are great true* ----1
**test2... -->indians are great false**-----2
*test1... -->i am india true* ----3
**test2... -->i am india false** ---4
test1... -->govt false
test2... -->govt false
test1... -->dhoomindian true----5
test2... -->dhoomindian false----6
test1... -->prashindiahim true----7
test2... -->prashindiahim false----8
test1... -->i jdsdindi a false
test2... -->i jdsdindi a false
test1... -->i n d i a false
test2... -->i n d i a false
您可以看到相同的find()方法在第一行中爲true,在前面的第二行中爲false。您可以看到行1-8 。 任何人都可以告訴我爲什麼我得到find()方法的這種行爲。在java中發現Matcher的find()方法的意外行爲
沒有什麼意外的在這裏,它在[API文檔]怎麼解釋(http://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html#find--)。 – biziclop