C語言中文網 目錄

Java正則表達式驗證IP地址

IP 地址是網絡上每臺計算機的唯一標識,因此 IP 地址的錯誤輸入將使程序無法運行。下面使用前面學習的正則表達式知識,編寫一個 Java 程序來驗證 IP 地址是否合法。

在定義正則表達式之前,首先要知道一個正確 IP 地址的格式及組成部分。IP 地址由 4 字節構成,每字節的值為 0~255,各字節通過一個句點分隔。因此,IP 地址中的每字節有至少一個,至多三個數字。

下面是為 IP 地址編寫的正則表達式:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

以上正則表達式對 IP 做簡單的匹配,不完全和 IP 的規則一致。如果想完全匹配,讀者可以重新修改匹配的正則表達式。

創建 Test22 類,在該類的 main() 方法中 編寫驗證 IP 地址的代碼。代碼如下:
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test22
{
    public static void main(String[] args)
    {
        String regex="\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
        String answer="Y";
        do
        {
            System.out.print("請輸入 IP 地址:");
            Scanner scan=new Scanner(System.in);
            String phone=scan.next();    //接收用戶在控制臺輸入的電話號碼
            Pattern pattern=Pattern.compile(regex);    //編譯正則表達式
            Matcher matcher=pattern.matcher(phone);    //創建給定輸入模式的匹配器
            boolean bool=matcher.matches();
            if(bool)
            {   //如果驗證通過
                System.out.println("輸入的 IP 地址正確。");
            }
            else
            {
                System.out.println("輸入的IP地址格式錯誤。");
            }
            System.out.print("是否繼續輸入?(Y/N 或者 y/n)");
            answer=scan.next();
        }while(answer.equalsIgnoreCase("Y"));
        System.out.println("程序結束。");
    }
}

運行程序,然后輸入不同格式的 IP 地址,輸出結果如下所示:
請輸入 IP 地址:11.154.15.1
輸入的 IP 地址正確。
是否繼續輸入?(Y/N 或者 y/n)y
請輸入 IP 地址:22a.7.68.9
輸入的IP地址格式錯誤。
是否繼續輸入?(Y/N 或者 y/n)n
程序結束。

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户