• 【学习笔记】字符串


    一、字符串:存储多个字符(字母、数字、汉字)
    二、String 引用数据类型,是最终类,不能被继承;
    定义的两种方式:
    1、String s1="admin";  存放在内存的常量池中;
    2、String s2=new String("admin"); 存放在堆栈中;

    例:

            String s1="admin";
            String s2="admin";
            System.out.println(s1.hashCode());
            System.out.println(s2.hashCode());
            System.out.println(s1==s2);
            String s3=new String("admin");
            String s4=new String("admin");
            System.out.println(s3.hashCode());
            System.out.println(s4.hashCode());
            System.out.println(s3==s4);

    //输出结果:

    92668751
    92668751
    true
    92668751
    92668751
    false


    三、注意:
    (一)对String反复进行操作时,会在内存中开辟大量的空间,浪费内存;
    (二)字符串中的常用方法:
    1、equals()方法:比较两个字符串的值是否一致。一致返回true,不一致返回false;
    2、equalsIgnoreCase()方法:不区分大小写比较两个字符串;

           例:

            String s="admin";
            System.out.println(s.equals("Admin"));                //false
            System.out.println(s.equalsIgnoreCase("Admin"));        //true


    3、charAt(下标):得到指定下标的字符,下标从0开始;

    例:

            String s="admin";
            System.out.println(s.charAt(2));                //输出结果:m


    4、concat("字符串"):将两个字符串连接到一起;和“+”功能一样

    例:

            String s1="admin";
            String s2=s1+"s";
            System.out.println(s2);
            System.out.println(s1.concat("s"));

    //输出结果:

    admins
    admins

    5、boolean endsWith("字符串"):返回布尔值,判断是否以参数字符串结束;

    例:

            String s="admin";
            System.out.println(s.endsWith("in"));        //true
    6、boolean startsWith("字符串"):返回布尔值,判断是否以参数字符串开头;

    例:

            String s="admin";
            System.out.println(s.startsWith("Ad"));        //false
    7、substring(开始下标,结束下标):截取字符串,如果只有开始下标,会一直截取到字符串的结尾;如果两个参数都有,结束下标位置上的字符不包含在截取范围内;即>=开始下标,<结束下标;

    例:

            String s="admin";
            System.out.println(s.substring(1));        //dmin
            System.out.println(s.substring(1,4));        //dmi


    8、int indexOf("字符串"):得到参数字符串在总字符串中的第一次出现的位置,如果没有出现,返回-1;

    例:

            String s="adminin";
            System.out.println(s.indexOf("in"));        //3
            System.out.println(s.indexOf("ins"));        //-1
      9、int lastIndexOf("字符串"):从后到前搜索位置,当前位置下标还是正向的,如果没有出现,返回-1

    例:

            String s="adminin";
            System.out.println(s.lastIndexOf("in"));        //5
            System.out.println(s.lastIndexOf("ins"));        //-1
    10、boolean isEmpty():判断字符串是否有内容;

    例:

            String s="adminin";
            System.out.println(s.isEmpty());        //false
    11、int length():获得字符串中字符的个数;

    例:

            String s="adminin";
            System.out.println(s.length());        //7
    12、String replace("旧的字符串","新的字符串"):用新字符串替换所有的旧字符串;

    例:

            String s="adminin";
            System.out.println(s.replace("in","on"));        //admonon


    13、String[] split("分割符"):将一个字符串以固定的分隔符拆分成字符串数组;

    例:

            String s="ad-m-in-in";
            String[] strs=s.split("-");
            System.out.println(Arrays.toString(strs));        //[ad, m, in, in]
       
    四、StringBuffer和StringBuilder类
    1、目的:解决反复对字符串操作开辟大量内存空间的问题;
    2、StringBuffer和StringBuilder和String的区别:
    String类中的内容不能改变, StringBuffer和StringBuilder中的内容可以改变;

    例:

            String s="admin";
            String str=s+"new";        
            System.out.println(str);
            System.out.println(s);
            StringBuffer sBuffer=new StringBuffer(s);
            System.out.println(sBuffer.toString());
            System.out.println(sBuffer.append("on"));
            System.out.println(sBuffer);
            StringBuilder sBuilder=new StringBuilder(s);
            System.out.println(sBuilder);

    //输出结果:

    adminnew
    admin
    admin
    adminon
    adminon
    admin

  • 相关阅读:
    【Flink metric(1)】Flink指标系统的系统性知识:获取metric以及注册自己的metric
    保研笔记八——YOLOV5项目复习
    “香蕉大王”的转型升级,能否扩大市场份额?
    代码随想录算法训练营第60天(动态规划17● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇
    Python 计算三角形面积
    1156 Sexy Primes – PAT甲级真题
    c#学生管理系统
    Daniel Gross:硅谷的创投天才,能否成为下一个 Sam Altman?
    Linux查看防火墙状态
    Coremail受邀参加中非数字能力建设合作论坛
  • 原文地址:https://blog.csdn.net/jeremy9627/article/details/125503108