Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
try{
String match="http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?";
if(tf.getText().equals("")){
textArea.setText(null);
JOptionPane.showConfirmDialog(null, "请输入网址!");
}
else{
URL url=new URL(tf.getText());
URLConnection connection=url.openConnection();
connection.connect();
InputStream is = connection.getInputStream();
byte[] buf=new byte[2048];
int n=0;
StringBuffer sb=new StringBuffer();
while((n=is.read(buf))>0){
sb.append(new String(buf, 0, n, "utf-8"));
}
if(sb.equals("")){
JOptionPane.showConfirmDialog(null,"网站异常,请检查!");
}else{
textArea.setText(sb.toString()+"网站正常运行!"+sdf.format(System.currentTimeMillis()));
}
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}, 0, split);问题1:我想判断一下文本框输入的网址是否是合法的,不合法则弹出提示框,但是我试过很多的正则判断都不行,有没有一个能判断输入的是否是网址的正则。
问题2:我用sb来判断网站运行状态,如果sb的内容为空,则表示网页无法访问。但是判断不出来。该如何去判断输入的网址是否可以访问,当不能访问,程序也可以运行下去,但是会提出网站无法访问的提示框,并显示出无法访问的时间。各位大虾,小弟求解答。谢了。(tf是swing里面的JTextField,textArea是swing的JTextArea)
timer.schedule(new TimerTask() {
public void run() {
try{
String match="http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?";
if(tf.getText().equals("")){
textArea.setText(null);
JOptionPane.showConfirmDialog(null, "请输入网址!");
}
else{
URL url=new URL(tf.getText());
URLConnection connection=url.openConnection();
connection.connect();
InputStream is = connection.getInputStream();
byte[] buf=new byte[2048];
int n=0;
StringBuffer sb=new StringBuffer();
while((n=is.read(buf))>0){
sb.append(new String(buf, 0, n, "utf-8"));
}
if(sb.equals("")){
JOptionPane.showConfirmDialog(null,"网站异常,请检查!");
}else{
textArea.setText(sb.toString()+"网站正常运行!"+sdf.format(System.currentTimeMillis()));
}
}
}catch (Exception ex) {
ex.printStackTrace();
}
}
}, 0, split);问题1:我想判断一下文本框输入的网址是否是合法的,不合法则弹出提示框,但是我试过很多的正则判断都不行,有没有一个能判断输入的是否是网址的正则。
问题2:我用sb来判断网站运行状态,如果sb的内容为空,则表示网页无法访问。但是判断不出来。该如何去判断输入的网址是否可以访问,当不能访问,程序也可以运行下去,但是会提出网站无法访问的提示框,并显示出无法访问的时间。各位大虾,小弟求解答。谢了。(tf是swing里面的JTextField,textArea是swing的JTextArea)
Pattern p = Pattern.compile("http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?"); //关于网址的正则要根据不同的需求来写的,我是直接复制你的
Matcher m = p.matcher(url); //url 指的是 传进来的网址
boolean b= m.matches(); //b表示判断网址的有效性
2、怎样判断网址是否能访问,我只能简单说说思路,你自己写代码吧:
你可以通过 类似于 CMD -->PING 网址 就知道了……
亲, 你的结贴率啊……
String match="http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?";
声明后,你在哪里用它进行匹配了呢?
Pattern p = Pattern.compile(match);
Matcher m = p.matcher(textArea.getText());
boolean b= m.matches();
if(tf.getText().equals("")){
textArea.setText(null);
JOptionPane.showConfirmDialog(null, "请输入网址!");
}
else if(b==false){
textArea.setText(null);
JOptionPane.showConfirmDialog(null, "请输入正确的网址!");
}
else{
URL url=new URL(tf.getText());
URLConnection connection=url.openConnection();
connection.connect();
InputStream is = connection.getInputStream();
byte[] buf=new byte[2048];
int n=0;
StringBuffer sb=new StringBuffer();
while((n=is.read(buf))>0){
sb.append(new String(buf, 0, n, "utf-8"));
}
if(sb.equals("")){
JOptionPane.showConfirmDialog(null,"网站异常,请检查!");
}else{
textArea.setText(sb.toString()+"网站正常运行!"+sdf.format(System.currentTimeMillis()));
}
}我是这样匹配的,但还是不行呢???