版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mushao999/article/details/45398787
描述:
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
知识点: 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归
题目来源: 内部整理
练习阶段: 初级
运行时间限制: 10Sec
内存限制: 128MByte
输入:
输入一个ip地址
输出:
样例输入:
10.138.15.1
样例输出:
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
知识点: 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归
题目来源: 内部整理
练习阶段: 初级
运行时间限制: 10Sec
内存限制: 128MByte
输入:
输入一个ip地址
输出:
返回判断的结果YES or NO
10.138.15.1
样例输出:
YES
思路:先将录入的字符串按照“.”划分,然后把每个string转化为int,判断是否在0和255之间,经过所有这些考验后的就是合法ip
注意事项:java中string的split函数参数是正则表达式,但是.是正则表达式的特殊字符,所以需要些\.,但是“\”也是特殊字符也需要转义,所以split的参数为“\\.”。另注意,在将string转int时可能抛出异常,抛出的异常为NumberFormatException。
解决方案:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String ip=sc.nextLine();
sc.close();
String[] numbers=ip.split("\\.");
if(numbers.length!=4)
{
System.out.println("NO");
return;
}
for(String str:numbers)
{
int num=-1;
try {
num=Integer.parseInt(str);
} catch (NumberFormatException e) {
// TODO: handle exception
System.out.println("NO");
return;
}
if(num<0||num>255)
{
System.out.println("NO");
return;
}
}
System.out.println("YES");
}
}