日期:2014-05-17  浏览次数:21365 次

新人求助,判断String[]是否包含某个String
比如判断”Error,Info,Warn"中是否存在"Error",请问有什么简便方法吗?比如Contains什么的?还是说用正则?

------解决方案--------------------
public class test
{
    public static void main(String[] args)
    {
       String string="Error,Info,Warn";
       if (string.contains("Error"))
    {
        System.out.print("true");
    }

    }
}
用contains可以或者
public class test
{
    public static void main(String[] args)
    {
       String string="Error,Info,Warn";
       if (string.indexOf("Error")>=0)
    {
        System.out.print("true");
    }

    }
}
用Indexof()不存在返回-1
------解决方案--------------------
刚刚看到网页制作敏感词,你可以参考一下,做一个词库,设定好级别,然后写个东西检查一下就行了,正则感觉挺好用的
------解决方案--------------------
matches是一个静态方法,使用类名.方法名进行调用
Pattern.matches(String regex, CharSequence input)
它的内部实现是:
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
return m.matches();

如果一个同样的正则你想使用多次,就可以分开写,这样能节省创建对象的开销


Pattern p = Pattern.compile(regex);
//可能是一个循环体...
for(int i = 0; i < 10000; i++){
    Matcher m = p.matcher(input);
}


正则表达式后面可以直接加上
?i表示忽略大小写
?g全局模式
?m多行模式

例如:
Pattern.matches("a?i", "aA")
------解决方案--------------------

Arrays.asList(array).contains(string)