前言:
各位同学大家好,现在这段时间给大家更新算法的一些讲解 废话不多说我们正式开始,希望能帮助到各位的学习 工作以及面试
需求:
"1.1.1.1" 将这边ip地址 转化为 1[.]1[.]1[.]1 这种效果
具体实现 :
-
方法一
直接调用系统api replace
String address = "1.1.1.1";
String getstr = address.replace(".", "[.]");
-
方法二
这边我们通过 StringBuilder 进行拼接然后调用 address.charAt 将字符串拆分成字符 然后进行对比如果等于'.' 这种情况就在前后拼接"[" 和 "]" 如果不等于'.' 就直接拼接
public static String defangIPaddr(String address) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < address.length(); i++) {
if (address.charAt(i) == '.') {
sb.append("[").append(address.charAt(i)).append("]");
} else {
sb.append(address.charAt(i));
}
}
return sb.toString();
}
- -#### 方法三:
方法三和方法二思路其实差不多的 不过拼接直接是字符串用+号拼接的 在字符串内容可变的情况下方法二里面的 StringBuilder 拼接性能更高 所以推荐使用方法二
public static String defangIPaddr2(String address) {
String getstr="";
for (int i = 0; i < address.length(); i++) {
if (address.charAt(i) == '.') {
getstr=getstr+"["+address.charAt(i)+"]";
} else {
getstr+=address.charAt(i);
}
}
return getstr;
}
完整代码 :
public class IPString {
public static void main(String[] args) {
String address = "1.1.1.1";
String getstr = address.replace(".", "[.]");
System.out.println(getstr);
System.out.println(defangIPaddr(address));
System.out.println(defangIPaddr2(address));
}
public static String defangIPaddr(String address) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < address.length(); i++) {
if (address.charAt(i) == '.') {
sb.append("[").append(address.charAt(i)).append("]");
} else {
sb.append(address.charAt(i));
}
}
return sb.toString();
}
public static String defangIPaddr2(String address) {
String getstr="";
for (int i = 0; i < address.length(); i++) {
if (address.charAt(i) == '.') {
getstr=getstr+"["+address.charAt(i)+"]";
} else {
getstr+=address.charAt(i);
}
}
return getstr;
}
}
运行效果 :
image.png大家可以看到 最终三种方式都可以实现需求:
最后总结:
这道题目主要是对于字符串的api拆分和拼接 整体还是算简单的。 有兴趣的同学可以私下多练习几次加深映像 , 我这边主要是希望能帮助到各位网友的基础学习和面试的 最后希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里
网友评论