码迷,mamicode.com
首页 > 其他好文 > 详细

ip地址

时间:2019-08-24 17:01:30      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:int   ati   print   turn   实现   rgs   span   java代码   业务逻辑   

最近在笔试的时候遇到碰一道算法题,

要求判断一个字符串是不是合法的ip地址。

将我的思路发出来分享一下,不一定正确,也不一定是最优的方法。希望能分享一些交流

要求用java或者c来实现,我的java代码:

  1. public class Test_ip {
  2. //程序入口
  3. public static void main(String[] args) {
  4. Solution s = new Solution(); // 业务逻辑放在Solution类里面
  5. //String test_str = "12.34.56.67";
  6. String test_str = "256.34.56.67"; // 待解决的字符串
  7. boolean res = s.test_ip(test_str); //调用判断方法
  8. System.out.println(res); //输出结果
  9. }
  10. }
  11.  
  12. class Solution{
  13. /**
  14. * 判断一个字符串是否是一个合法的ip地址:
  15. * 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
  16. * 2 尝试按.符号进行拆分 拆分结果应该是4段
  17. * 3 查看拆分到的每一个子字符串,应该都是纯数字
  18. * 4 对拆分结果转成整数 判断 应该是0到255之间的整数
  19. * 5 经过各种磨砺之后 挺过来了!!!返回true
  20. */
  21. public boolean test_ip(String str){
  22. // 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
  23. if(str.length()<7 || str.length() >15) return false; // 如果长度不符合条件 返回false
  24.  
  25. // 2 尝试按.符号进行拆分 拆分结果应该是4段
  26. String[] arr = str.split("\\.");
  27. if( arr.length != 4 ) return false; //如果拆分结果不是4个字串 返回false
  28.  
  29. // 3 查看拆分到的每一个子字符串,应该都是纯数字
  30. for(int i = 0 ; i <4 ; i++ ){
  31. for(int j = 0; j<arr[i].length();j++){
  32. char temp = arr[i].charAt(j);
  33. if(!( temp>‘0‘ && temp< ‘9‘ ) ) return false; //如果某个字符不是数字就返回false
  34. }
  35. }
  36.  
  37. // 4 对拆分结果转成整数 判断 应该是0到255之间的整数
  38. for(int i = 0 ; i<4;i++){
  39. int temp = Integer.parseInt( arr[i] );
  40. if( temp<0 || temp >255) return false; //如果某个数字不是0到255之间的数 就返回false
  41. }
  42.  
  43. // 5 经过各种磨砺之后 挺过来了!!!返回true
  44. return true;
  45. }
  46. }

ip地址

标签:int   ati   print   turn   实现   rgs   span   java代码   业务逻辑   

原文地址:https://www.cnblogs.com/liaogan-1110/p/11405099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!