美文网首页js css html
leetcode 算法第三集

leetcode 算法第三集

作者: xq9527 | 来源:发表于2022-06-22 10:16 被阅读0次

    前言:

    各位同学大家好,现在这段时间给大家更新算法的一些讲解 废话不多说我们正式开始,希望能帮助到各位的学习 工作以及面试

    需求:

    "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,小弟在这里

    相关文章

      网友评论

        本文标题:leetcode 算法第三集

        本文链接:https://www.haomeiwen.com/subject/wigyvrtx.html