• 【学习笔记】字符串


    一、字符串:存储多个字符(字母、数字、汉字)
    二、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

  • 相关阅读:
    数组12— map() :转换数组元素
    持续的敏捷转型--我们的经验
    python毕业设计作品基于django框架个人博客系统毕设成品(7)中期检查报告
    【CesiumJS-3】加载倾斜模型数据(3DTilest)以及修改位置
    JWT(JSON WEB TOKEN)
    awk提取nginx日志相应字段
    基于强化学习的测试日志智能分析实践
    Docker02基础操作
    Git基础(21):GitLab创建组、用户、项目
    速卖通运营策略‘新店铺如何做好定位及选品’
  • 原文地址:https://blog.csdn.net/jeremy9627/article/details/125503108