我有四个不同扩展名的网址,我只想根据.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);
}
}
我怎么能这样做 如果是在开关箱或其他情况下请帮助我。 提前谢谢。
答案 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);
}
}
但是如果不像.css
或fla
那样你可以简单地反转打印条件......没有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