简介
作者简介:青铜码农
本章节内容简介:实现对IP地址的验证功能,把该功能加载到网络程序中,可以避免用户IP地址输入错误。
一、实现思路
1.创建窗体类CheckIPFrame
2.编写“验证”按钮的事件处理方法
3.编写验证IP地址的check()方法
二、所需技术
iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式
下面给出相对应的正则表达式:
"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
+"(\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)){3}$"
这里的写法没有考虑两种情况,一是172.00.01.3这种,前面以零开头,或者多个零的这种情况,二是本网络地址,如果想支持,可根据下面的解释进行扩展。
\d表示0~9的任何一个数字
{2}表示正好出现两次
[0-4]表示0~4的任何一个数字
| 的意思是或者
( )上面的括号不能少,是为了提取匹配的字符串,表达式中有几个()就表示有几个相应的匹配字符串
1\\d{2}的意思就是100~199之间的任意一个数字
2[0-4]\\d的意思是200~249之间的任意一个数字
25[0-5]的意思是250~255之间的任意一个数字
[1-9]\\d的意思是10~99之间的任意一个数字
[1-9])的意思是1~9之间的任意一个数字
\\.的意思是.点要转义(特殊字符类似,@都要加\\转义)
————————————————
版权声明:此部分内容为CSDN博主「十案圈圈」的原创文章
三、实现过程
1.创建窗体类
在该窗体中添加一个输入IP地址的文本框和一个“验证”按钮并给按钮添加监听事件,代码如下:
public class CheckIPFrame extends JFrame {
private JPanel contentPane;
private JTextField jTextField;
public CheckIPFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 280, 128);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblip = new JLabel("请输入IP地址:");
lblip.setBounds(12, 14, 92, 15);
contentPane.add(lblip);
jTextField = new JTextField();
jTextField.setBounds(100, 10, 141, 25);
contentPane.add(jTextField);
JButton button = new JButton("点击验证");
button.setBounds(66, 57, 93, 23);
contentPane.add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jButton_actionPerformed(e);
}
});
}
}
2.编写按钮的事件处理方法
private void jButton_actionPerformed(ActionEvent e) {
String text = jTextField.getText();//获取用户输入
String info = check(text);//调用check方法输入进行判断
JOptionPane.showMessageDialog(null,info);//在对话框中输出验证
}
3.编写验证IP地址的check方法
private String check(String text) {
if (text != null && !text.isEmpty()) {
//定义正则表达式。
String regex="^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])"
+"(\\.(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)){3}$";
// 判断IP地址是否与正则表达式匹配。
if (text.matches(regex)) {
return text + "\n是一个合法的IP地址。";
} else {
return text + "\n不是一个合法的IP地址。";
}
}
return "请输入要验证的IP地址!";
}