有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果字符串包含语句,则为Java或运算符

我有以下代码

for (String str5 : verticesposition2) {
    if(!str5.contains(("Vertex")||("Name")||("Transmittance")) {
        System.out.println(str5); 
    }                           
}

如上所示,如果字符串不包含顶点、名称或透射比,我希望将其打印出来。但是,我收到一个编译错误,说参数类型的| |运算符未定义。我对编程比较陌生,所以我不确定这意味着什么,有人能指出正确的方向来修复我的代码吗


共 (3) 个答案

  1. # 1 楼答案

    | |运算符处理单个布尔项,而不是提供一组不同的参数

    if((!str5.contains("Vertex")||!str5.contains("Name")||!str5.contains("Transmittance")){
    
  2. # 2 楼答案

    尝试使用这个代码

     public static void main(String[] args) {
            List<String> verticesposition2 = new ArrayList<String>();
            verticesposition2.add("safdsfVertex");
            verticesposition2.add("safdsfNamesfsd");
            verticesposition2.add("notCONTAINS");
    
            for (String str5 : verticesposition2){
                if(!(str5.contains("Vertex")||str5.contains("Name")||str5.contains("Transmittance"))){
                    System.out.println(str5);
                }
            }
        }
    

    输出:

    不包含

    如果速度不重要,请使用带有regexp的

  3. # 3 楼答案

    Java没有这样的语法,但你可以把“or”放在正则表达式中:

    if (!str5.matches(".*(Vertex|Name|Transmittance).*")) {
    

    请注意,java的matches()(与许多其他语言不同)必须匹配整个字符串才能返回true,因此正则表达式两端的.*