Java检测IP地址输入是否正确

题目描述:
1、编写一个方法验证一个IP地址的格式是否正确,正确返回true,不正确返回false,该方法可定义如下
public boolean isRightIP(String ip)
其中,参数是要验证的IP字符串。(注:IP地址由4部分构成,即a.b.c.d,每个部分是0~255的整数)
2、从键盘读入以字符,在main方法中调用isRightIP(String ip)以测试输入的字符串是否为合法的IP,给出结果。

分析:题目意思是要检测输入的IP地址是否合法和是否正确,合不合法的标准是:输入的只可以是数字或者“.”,若是有其他字符则是输入不合法。检测IP地址是否正确就是检测IP地址的每个部分是否是0~255。public boolean ceshi (String ip)方法是检测IP地址是否有不合法字符;public boolean chishi1(String ip)方法是检测IP地址的“.”是否超过了三个。
代码如下:

package ch;
import java.util.Scanner;
class judge{ 
	public boolean isRightIP (String ip) {//检测IP地址是否正确
		String[] input=ip.split("\\.");
		int a=Integer.parseInt(input[0]);//IP地址的第一个部分
		int b=Integer.parseInt(input[1]);//IP地址的第二个部分
		int c=Integer.parseInt(input[2]);//IP地址的第三个部分
		int d=Integer.parseInt(input[3]);//IP地址的第四个部分
		if(a>=0 && a<=255 && b>=0 && b<=255&& c>=0 && c<=255&&d>=0 && d<=255  )
		{
		    System.out.println("true");
			return true;
		}
		else {
			System.out.println("false");
			return false;
		}
	}
    public boolean ceshi (String ip) {//检测IP地址是否合法
		int i=ip.length();
		int x=0;
		for(int j=0;j<i;j++) {
			if((ip.charAt(j)>47&&ip.charAt(j)<59)||ip.charAt(j)=='.'){
				x++;
			}
		}
		if(x==i)
		    return true;
		else
		    return false;	
	}
    public boolean chishi1(String ip)//检测IP地址是否合法
    {
    	int x=0;
    	int i=ip.length();
		for(int j=0;j<i;j++) {
			if(ip.charAt(j)==46)
				x++;
		}
		if(x==3)
			return true;
		else
			return false;
    }
}
public class IPText{
	public static void main(String [] args) {
		Scanner in=new Scanner (System.in);
		System.out.println("请循环输入IP地址:");
		while(in.hasNext())
		{
			
		    String IP=in.nextLine();
		    judge ip;
		    ip=new judge();
		    boolean m=ip.ceshi(IP);
		    boolean n=ip.chishi1(IP);
		    if(m==false||n==false)
		    {
			    System.out.println("输入有误!请重新输入:");
		    }
		    else
			ip.isRightIP(IP);
	    }
	}
}

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值