解题思路:

注意事项:

参考代码:

//导入命名空间

import java.util.Scanner;

public class IP判断 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Scanner scanner = new Scanner(System.in);
  //hasnext:没当你输入多少数据它才会进行判断
  while (scanner.hasNext()) {
   String strings = scanner.nextLine();

    //根据“.”隔离数据并返回数组形式的数据
   String[] resultStrings = strings.split("\\.");
   boolean l = true;
   for (int i = 0; i < resultStrings.length; i++) {

    //判断它是不是数字 为false直接跳出循环
     l = resultStrings[i].matches("[0-9]+");
     if (l) {

      //如果是数字则还需判断它是否再【0-255】之间 不在则之间跳出循环
     if (Integer.parseInt(resultStrings[i])<0||Integer.parseInt(resultStrings[i])>255) {
      l=false;
      break;
     }
    }else {
     break;
    }
   }
   
   //定义的全局变量,根据上面的判断来得到结果
   if (l) {
    System.out.println("Y");
   } else {
    System.out.println("N");
   }

  }
 }

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

Zeus 3年前 回复TA
大坑啊!!!要把+改成*号。否则一直输出N
  //判断它是不是数字 为false直接跳出循环
     l = resultStrings[i].matches("[0-9]+");

正则表达式应该这样写
[0-9]*是一个正则表达式,表示:任意多个数字
 resultStrings[i].matches("[0-9]*");

判断resultStrings是否为数字组成的字符串