题目:

实现 String 类型的 ip 与整数之间的相互转化。例如:将 “192.168.0.1” 转换为整数,然后给定这个整数仍然可以得到这个 String 类型的 ip。


//将一个字符串的ip地址192.168.1转换成整型的数字,它们是一一对应的关系
//核心思想:现将String类型的ip分为一个String数组,然后将其转换为byte数组,然后通过byte数组转换为整数的
//将整数转换为String类型的ip,道理也是一样的,同样是需要先转换为byte数组,然后通过byte类型转换为String类型的ip。
public class Main {public static void main(String[] args) {String ip1 = "192.168.0.1";int intIp = Ip2Int(ip1);String ip2 = int2Ip(intIp);System.out.printf("ip转换为整数的结果:%s\n", intIp);System.out.printf("整数转换为ip后的结果:%s\n", ip2);System.out.println(ip2.equals(ip1));}public static int Ip2Int(String strIp){String[] s = strIp.split("\\.");if(s.length != 4){return 0;}byte[] bytes = new byte[s.length];for(int i = 0; i < bytes.length; i++){bytes[i] = (byte)Integer.parseInt(s[i]);}return byte2Int(bytes);}public static int byte2Int(byte[] bytes){int n = bytes[0]& 0xFF;n |= ((bytes[1] << 8) & 0xFF00);n |= ((bytes[2] << 16) & 0xFF0000);n |= ((bytes[3] << 24) & 0xFF000000);return n;}public static String int2Ip(int intIp){byte[] bytes = int2byte(intIp);StringBuilder sb = new StringBuilder();for(int i = 0; i < 4; i++){sb.append(bytes[i] & 0xFF);if(i < 3){sb.append(".");}}return sb.toString();}public static byte[] int2byte(int i){byte[] bytes = new byte[4];bytes[0] = (byte)(0xff & i);bytes[1] = (byte)((0xff00 & i) >> 8);bytes[2] = (byte)((0xff0000 & i) >> 16);bytes[3] = (byte)((0xff000000 & i) >> 24);return bytes;}}

结果如下:

Java实现 String类型的ip与整数之间的相互转换(2021.8.1百度提前批面试题)相关推荐

  1. java.lang.date_无法将java.lang.String类型的值转换为必需类型java.util.Date

    from date: to date: Trouver 这是控制器代码部分: @RequestParam(name = "d1", defaultValue = "190 ...

  2. java string设置编码_详解Java中String类型与默认字符编码

    为什么写这个 至于为什么要写这个,主要是一句mmp一定要讲,绕了一上午,晕死 Java程序中的中文乱码问题一直是一个困扰程序员的难题,自己也不例外,早在做项目时就遇到过很多编码方式的坑,当时想填来着, ...

  3. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(4)ip地址相关

    去年提前批我投了京东.字节和百度,一面,二面都被问到了awk,如果你会,并且还很熟悉,那肯定算是一个加分项了!好感度up up up! 基本原理本篇不再赘述.请阅读: 总结了200篇面经中的awk面试 ...

  4. Android java传递string类型数据给C

    本文接着实现<Android java传递int类型数据给C>的还未实现的方法: public native String sayHelloInC(String s); 先贴一个工具方法, ...

  5. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  6. JAVA 计算String类型的时间差(秒)

    2019独角兽企业重金招聘Python工程师标准>>> /*** 根据数据库时间查询当前一共创建了多少个订单数量* 覃光林* 2018-12-29 11:06:16*/ @Reque ...

  7. java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?

    这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...

  8. java有string这个类型吗_关于java的String类型

    String类型的不可变 众所周知,String类型是不可变的,一旦String对象被创建好了则这个字符串中的序列就不可改变. 为什么String类型是不可变? 根据阅读源码可知,String类是一个 ...

  9. Java中String类型的概述

    String的特性 1 String类:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 2 String是一个final类,代表不可变的字 ...

最新文章

  1. IOS -- base64编码
  2. 【翻译】CodeMix使用教程(三):Emmet
  3. POJ 3061 (二分+前缀和or尺取法)
  4. orcle 删除表报正在使用_oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/...
  5. VS与QT的路径查找差异
  6. 分布式是写出来的(六)
  7. 在Linux Ubuntu 18.04.x上安装和配置ActiveMQ-Artemis
  8. 用php向MySQL的datetime类型插入数据
  9. 开始学习Scheme
  10. GitHub 使用入门,创建仓库、添加分支...
  11. java类加载器用途_对于java类加载器的认识(2)
  12. 道一声java技术_java提高篇(二)-理解java的三大特性之继承 - Java 技术驿站-Java 技术驿站...
  13. xmpp 即时通讯
  14. FastDFS同ip同机器迁移存储位置
  15. MATLAB 画常见二次曲面汇总
  16. C语言 pow函数 undefined reference to `pow‘ 已解决
  17. 计算机网络原理笔记精整理(汇总)
  18. 帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查)帐套文件(*.mdf)无法复制,拷贝出现数据错误(循环冗余检查),sql附加823错误
  19. 机房气体消防系统设计重点
  20. 录屏软件哪个好用?10个免费好用的「录屏软件」推荐

热门文章

  1. 你应该知道的 Nginx 配置清单
  2. 【Zookeeper】Zookeeper一致性协议——ZAB
  3. ssd2828测试进入测试模式_LOL卡牌推出“远征”轮抽模式 本周再度开启线上测试...
  4. 终于有人手把手用Java实现超市管理系统
  5. linux ping程序设计与实现,一步步学Linux网络编程--ping命令的实现分析
  6. 图像的均值和方差python_python-绘制均值和标准差
  7. Zabbix使用JMX监控tomcat
  8. java rxtx 64_java – RXTX无法在Windows 7 64位下列出或查找端口
  9. php面对对象设计,PHP对象与设计
  10. python实现tcp发包_python 多线程tcp udp发包 Dos工具。