请问哪位大侠能帮我写一段如果判断一个string型的常量是不是IP地址的程序,要全的代码。万分感谢。

解决方案 »

  1.   

    应该先分割字符串,然后再分别判断它是否符合A,B,C...类IP地址的条件!
      

  2.   

    /**
     * IsIPAddress.java
     */import java.net.InetAddress;
    import java.net.UnknownHostException;/**
     * @author ZouWeitao
     * @判断一个字符串是不是IP地址
     * 
     */
    public class IsIPAddress { /**
     * 构造函数
     */
    public IsIPAddress() {
    super();
    // TODO Auto-generated constructor stub } public boolean isIPAddress(String str) {
    // 是否是IP地址的标志,初始化为真
    boolean isAdd = true;
    try {
    InetAddress add = InetAddress.getByName(str);
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    // 如果发生异常,说明转换错误,标志置否
    isAdd = false;
    }
    return isAdd; } /**
     * @param args 命令行参数
     * @该程序已在JDK5.0下运行通过
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    IsIPAddress app = new IsIPAddress(); // 一个合法的IPv4地址
    String legalIPv4 = "127.0.0.1"; // 一个合法的IPv6地址
    String legalIPv6 = "0::0"; // 一个非法IP地址
    String illegalIP1 = "256.0.0.0"; String ilelegalIP2 = "adfa"; // 判断各地址是不是合法的IP地址
    if (app.isIPAddress(legalIPv4)) {
    System.out.println(legalIPv4 + "是IP地址");
    } else {
    System.out.println(legalIPv4 + "不是IP地址");
    } if (app.isIPAddress(legalIPv6)) {
    System.out.println(legalIPv6 + "是IP地址");
    } else {
    System.out.println(legalIPv6 + "不是IP地址");
    } if (app.isIPAddress(illegalIP1)) {
    System.out.println(illegalIP1 + "是IP地址");
    } else {
    System.out.println(illegalIP1 + "不是IP地址");
    } if (app.isIPAddress(ilelegalIP2)) {
    System.out.println(ilelegalIP2 + "是IP地址");
    } else {
    System.out.println(ilelegalIP2 + "不是IP地址");
    }
    }}
      

  3.   

    import java.util.*;public class CheckIp { /**
     * @param args
     */
    String ip = "12.2111.21.12.30";
    public boolean check(String s){
    boolean ip = false;
    boolean fourpart = false;
    boolean fairNum = true; 
    int i = 0;
    StringTokenizer st = new  StringTokenizer(s,".");
    while(st.hasMoreTokens()){
    i++;
    int num = Integer.parseInt(st.nextToken());
    if(num<0||num>255){
    fairNum = false;
    System.out.println("数字范围越界");
    return false;
    }
    //System.out.println(st.nextToken());
    }
    if(i==4)
    fourpart = true;
    else
    System.out.println("不是四部分组成");
    return fourpart;
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    CheckIp c = new CheckIp();
    System.out.println(c.check(c.ip));
    }}
    //没有用InetAddress随便写了几个判断条件,还是楼上的朋友强悍~!!
      

  4.   

    都强
    深圳java程序员博客,为你提供多方面资料http://drivemewild.blogchina.com
      

  5.   

    用正则表达式判断一下不就搞定了!very easy!