我怎么能阻止字符串数组中的特定网址

时间:2016-11-29 07:57:32

标签: java swing

我有四个不同扩展名的网址,我只想根据.extension阻止特定的网址。 我怎么能这样做?  我有条件使用,但如果不给我我的愿望 我已经完成了这段代码

String line[]={"https://google.com","https://www.facebook.swf","http://www.hotstar.com","http://www.deathbycaptcha.com/user/login.js"};

for( int i=0;i<=line.length;i++){ 
    String ln=line[i];

    if(ln.endsWith(".css")){
        break;
    }
    if(ln.endsWith(".js")){

    } 
    if(ln.endsWith(".jpg")){
        break;
    }

    if(ln.endsWith(".fla")){
        break;
    }
    if(ln.endsWith(".swf")){
        break 
    }
    else{
        System.out.println("urls :"+ln);
    } 
}

我怎么能这样做 如果是在开关箱或其他情况下请帮助我。 提前谢谢。

4 个答案:

答案 0 :(得分:1)

您可以使用正则表达式实现此目的:

import java.util.regex.*;

public class TestRegex {
    public static void main(String []args){
        String[] line = new String[] {
            "https://google.com",
            "https://www.facebook.swf",
            "http://www.hotstar.com",
            "http://www.deathbycaptcha.com/user/login.js"
        };

        // End with .js or .swf
        String regex = "(?<=(\\.js)|(\\.swf))$"; // You can create a builder to build a dynamic regex

        Pattern re = Pattern.compile(regex);

        for (String ln : line) {
            Matcher m = re.matcher(ln);
            if (m.find()) {
                System.out.println(ln);
            }
        }
     }
}

由于@AxelH指出我们需要检查每个字符串是否以特定扩展名结尾。在这种情况下,我们只需要更改正则表达式:(?<!(\\.js)|(\\.swf))$

我还会更新原始案例的正则表达式,以便您看到相反的情况:(?<=(\\.js)|(\\.swf))$

在此处查看有关正面和负面外观的更多信息:lookaround

答案 1 :(得分:0)

.parent{
    display: flex;
}

答案 2 :(得分:0)

您正在使用停止循环的break,如果要检查完整循环但跳过具有此逻辑的特定循环,则需要使用continue

中断将停止循环,无需任何检查。

继续将停止循环的语句块,并将再次检查循环的条件,这不会退出循环。

我冒昧地将测试重新组合成一个if子句。

for( int i=0;i<=line.length;i++)
{ 
    String ln=line[i];
    if(ln.endsWith(".css")
              || ln.endsWith(".fla") 
              || ln.endsWith(".swf") 
              || ln.endsWith(".jpg"))){
        continue;
    } else {
        System.out.println("urls :"+ln);
    } 
}

但是如果不像.cssfla那样你可以简单地反转打印条件......没有else子句

答案 3 :(得分:0)

做这样的事情:

public static void main(String[] args) {

        String lines[] = { "https://google.com", "https://www.facebook.swf", "http://www.hotstar.com",
                "http://www.deathbycaptcha.com/user/login.js" };

        for (String line : lines) {
            String extension = line.substring(line.lastIndexOf("."));

            switch (extension) {
            case ".com":
                // bla bla bla
                break;
            case ".jpg":
                // its an image
                break;
            case ".css":
            case ".js":
                // CSS or Javascript
                break;
            default:
                break;
            }

        }
    }

请注意,仅在JRE版本中支持切换字符串&gt; 6