Java Ipv6格式化冒分十六进制 工具类
生活随笔
收集整理的這篇文章主要介紹了
Java Ipv6格式化冒分十六进制 工具类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/*格式化簡化的ipv6地址*/
public static String formatIpv6(String ipv6) {String ipmat = ipv6.replace("::", "&");String ipv6No0 = "";int index = ipmat.indexOf("&");//判斷是否有::if (ipmat.contains("&")) {//判斷:的數量int n = ipmat.length() - ipmat.replaceAll(":", "").length();//如果出現:: 在第一個的位置 或者 最后的位置if (index == 0 || index == ipmat.length() - 1) {//需要補0的數量int i = 8 - (n + 1);StringBuilder str = new StringBuilder();String bj = "";//如果出現:: 在第一個的位置if (index == 0) {bj = "0:";} else {//如果出現:: 在最后的位置bj = ":0";}for (int j = 0; j < i; j++) {str.append(bj);}ipv6No0 = ipmat.replace("&", str.toString());} else {// 如果出現:: 中間位置String[] split = ipmat.split("&");//需要補0的數量int i = 8 - (n + 2);StringBuilder str = new StringBuilder();for (int j = 0; j < i; j++) {str.append(":0");}str.append(":");ipv6No0 = split[0] + str.toString() + split[1];}}String[] split = ipv6No0.split(":");StringBuilder ipv6s = new StringBuilder();//補0for (int i = 0; i < split.length; i++) {String s = split[i];if (s.length() == 1) {ipv6s.append("000" + s);}if (s.length() == 2) {ipv6s.append("00" + s);}if (s.length() == 3) {ipv6s.append("0" + s);}if (s.length() == 4) {ipv6s.append(s);}if (i != split.length - 1) {ipv6s.append(":");}}return ipv6s.toString();
}
總結
以上是生活随笔為你收集整理的Java Ipv6格式化冒分十六进制 工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何快速学习并掌握一门编程语言
- 下一篇: 13_离线计算系统_第12-13天(离线