码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【JavaEE进阶序列 | 从小白到工程师】String类常用的成员方法,一文直接上手使用


    文章目录

    • 前言
    • 🍂 equals和 equalsIgnoreCase(比较字符串)
      • 🌿 public boolean equals(Object anObject)
      • 🌿public boolean equalsIgnoreCase(String anotherString)
    • 🍂 length方法(获取字符串长度)
      • 🌿public int length()
    • 🍂toCharArray()和charAt(int index)方法(都可以用来遍历获取所有字符)
      • 🌿public char[] toCharArray()
      • 🌿public char charAt(int index)
    • 🍂substring()方法(用于截取字符串,没被截到就被舍弃了)
      • 🌿public String substring(int beginIndex)
      • 🌿public String substring(int beginIndex, int endIndex))
      • ❓案例
    • 🍂split方法()(用于切割字符串的方法)
      • 🌿public String[] split(String regex)
      • 🌿public String[] split(String regex, int limit)
      • 扩展
        • ❓问题1:当切割到正则表达式符号的时候会切割失败
          • ⭕解决方法:使用转义字符 '\\' 就可以解决
        • ❓ 问题2:当切割多个字符的时候会切割失败
          • ⭕解决方法:当需要多个字符切割的时候要用到 | 这个分开
          • 🔱 总结注意
    • 🍂 replace中的四个方法(用于替换字符串的方法)
      • 🌿public String replace(char oldChar, char newChar)
      • 🌿public String replace (CharSequence target, CharSequence replacement):
      • 🌿public String replaceAll(String regex, String replacement)
      • 🌿public String replaceFirst(String regex, String replacement)
        • ❓ 案例:录入一个字符串,如果字符串包含(TMD),使用***替换
        • ⚡replace()和replaceAll()的区别⚡
        • 总结:
    • 作者:KJ.JK


    前言


    🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈
     
    🍂个人博客首页: KJ.JK
     
    欢迎大家点赞👍收藏💖评论💬关注🔒
     
    💖源码获取 | 💻学习交流 | 🤝商务合作 | 💨私信作者


    🍂 equals和 equalsIgnoreCase(比较字符串)


    🌿 public boolean equals(Object anObject)

    //public boolean equals(Object anObject) :  两个字符串之间做比较,比较内容, 返回true,false的结果
               
                         String a="abc";
                         String b="abc";
                         System.out.println(a.equals(b));   //true
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    🌿public boolean equalsIgnoreCase(String anotherString)

    //public boolean equalsIgnoreCase(String anotherString):  两个字符串之间比较,比较内容,忽略大小写,返回true,false的结果(用于验证码多)
    
                         String a1="abc";
                         String b1="Abc";
                         System.out.println(a1.equalsIgnoreCase(b1));  //true
    
    • 1
    • 2
    • 3
    • 4
    • 5

    🔥系列热门专栏🔥:
     
    ⚡《JavaEE进阶序列 | 从小白到工程师》系列文章⚡
     
    ⚡《JavaEE项目实战》系列文章⚡
     
    ⚡《JavaSwing项目合集》系列文章⚡
     
    ⚡《数据分析中的pandas》系列文章⚡


    🍂 length方法(获取字符串长度)


    🌿public int length()

    //public  int length() : 返回字符的个数
    
                               String a="abc";
                               int  b =a.length();
    
    • 1
    • 2
    • 3
    • 4

      注意:
                  String中的length()  --> 方法    如: arr.length()
                  
                  数组中的length   --> 属性     如: arr.length
    
    • 1
    • 2
    • 3
    • 4

    🍂toCharArray()和charAt(int index)方法(都可以用来遍历获取所有字符)


    🌿public char[] toCharArray()

    //public char[] toCharArray() : 将此字符串转换为新的字符数组
    
                       String a="abc";
                       char [] a1=a.toCharArray();
    
                       for (int i = 0; i < a1.length; i++) {
                          System.out.println(a1[i]);           //获取各个元素
                              }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    请添加图片描述


    🌿public char charAt(int index)

    //public  char charAt(int index) : 返回指定索引处的 char值(根据索引找字符)
    
                               //返回指定索引处的 char值
                                String b="abc";
                                char b1=b.charAt(0);
                                System.out.println(b1);   //输出a
    
    
                              //也可以用来遍历获取所有字符
                                 String  c="abc";
                                 for (int i = 0; i <c.length() ; i++) {                //用到length()方法,效率没有上面的高
                                 System.out.println(c.charAt(i));
                                 }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    请添加图片描述


    🍂substring()方法(用于截取字符串,没被截到就被舍弃了)


    🌿public String substring(int beginIndex)


    //public String  substring(int beginIndex) : 根据传入的索引截取当前字符串,截取到末尾
    
                         String  s="HelloWorld";
    
                         String s1=s.substring(2);  //从索引2开始到末尾
    
                         System.out.println(s1);  //lloWorld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    请添加图片描述


    🌿public String substring(int beginIndex, int endIndex))

    //public String  substring(int beginIndex, int endIndex): 根据传入开始和结束索引,截取字符串,并返回新的字符串                                                                                       包括开始索引,不包括结束索引(包头,不包尾)
    
                         String  a="HelloWorld";
    
                         String a1=a.substring(2,4);   //从索引2开始到索引4
    
                         System.out.println(a1);    //ll
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    请添加图片描述


    ❓案例

                   需求:以字符的形式从键盘接收一个手机号,将中间的四位号码屏蔽
                               如:156****1234
    
    • 1
    • 2
            Scanner  rd=new Scanner(System.in);
            String tel=rd.next();
    
            String start=tel.substring(0,3);    //前三位
    
            String end=tel.substring(7,11);    //后四位
    
            tel=start+"****"+end;
    
            System.out.println(tel);       //156****1234
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    请添加图片描述


    🍂split方法()(用于切割字符串的方法)


    🌿public String[] split(String regex)

    //public  String[] split(String regex):根据传入的字符串参数,作为规则,切割当前字符串
                             String a="198,168,10,1";
                             String [] arr=a.split(",");
    
                             for (int i = 0; i < arr.length; i++) {
                                  System.out.println(arr[i]);
                                  }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    请添加图片描述


    🌿public String[] split(String regex, int limit)

    //public String[] split(String regex, int limit):   根据传入的字符串参数和限制长度,作为规则,切割当前字符串   (就是把字符串分成几段)
                           String b="2022-04-19";
                           String[] b1=b.split("-",2);   //分成两段
                           for (int i = 0; i < b1.length; i++) {
                             System.out.println(b1[i]);
                                }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    请添加图片描述


    扩展


    ❓问题1:当切割到正则表达式符号的时候会切割失败

            String a1="198.198.156";
            String [] arr1=a1.split(".");
    
            //当用正则表达式.切割的时候会出现什么都没有的情况,这是因为参数是正则表达式,而.在正则表达式中表任意字符,所以切割的时候会都切了
            for (int i = 0; i < arr1.length; i++) {
                System.out.println(arr1[i]);
            }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    请添加图片描述


    ⭕解决方法:使用转义字符 ‘\’ 就可以解决

                    String a1="198.198.156";
                    String [] arr2=a1.split("\\.");
                    for (int i = 0; i < arr2.length; i++) {
                      System.out.println(arr2[i]);
                   }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    ❓ 问题2:当切割多个字符的时候会切割失败

                   String   s="198.19@19";
                   String [] sarr=s.split("\\.@"); //当需要多个字符切割的时候要用到 | 这个,要不然会不生效或者生效一个
                    for (int i = 0; i < sarr.length; i++) {
                    System.out.println(sarr[i]);     //198.19@19
                   }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    ⭕解决方法:当需要多个字符切割的时候要用到 | 这个分开

                        String   s2="198.19@19";
                        String [] s2arr=s2.split("\\.|@");
                        for (int i = 0; i < s2arr.length; i++) {
                             System.out.println(s2arr[i]);
                                }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    🔱 总结注意

               1.split返回是一个字符串数组接收
    
               2.为了防止切割的时候会因为正则表达式出现空白的情况,
                 以后所有切割都用\\为开头就行
                 
               3. 多个符号切割时记得用|分开
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    🍂 replace中的四个方法(用于替换字符串的方法)


    🌿public String replace(char oldChar, char newChar)

    // public String replace(char oldChar, char newChar):  返回从替换所有出现的导致一个字符 oldChar,在这个字符 newChar    (替换字符)
    
                  String a="abc";
                  String a1=a.replace("b","d");
                  System.out.println(a1);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    🌿public String replace (CharSequence target, CharSequence replacement):


    //public String replace (CharSequence target, CharSequence replacement):              CharSequence target:字符串旧值,    CharSequence replacement:字符串新值,  将与字面目标序列匹配的字符串的每个子字符串替换为指定的文字替换序列   (替换字符串)
    
                                 String a="Hello";
                                 String a1=a.replace("H","a");
                                 System.out.println(a1);    //aello
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    🌿public String replaceAll(String regex, String replacement)

    //public String replaceAll(String regex, String replacement):替换所有字符串  (替换所有和目标值一样的字符串,不过因为参数是regex正则表达式,当替换正则表达式时会报错,需要加转义)
    
                          String  b="hello.hello";
                          String b1=b.replaceAll("hello","nihao");
                          System.out.println(b1);     //nihao.nihao
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    🌿public String replaceFirst(String regex, String replacement)

    //public String replaceFirst(String regex, String replacement) : 替换第一个出现的目标值
    
                        String  c="hellohello";
                        String c1=c.replaceFirst("hello","nihao");
                        System.out.println(c1);      //nihaohello
    
    • 1
    • 2
    • 3
    • 4
    • 5

    请添加图片描述


    ❓ 案例:录入一个字符串,如果字符串包含(TMD),使用***替换

               Scanner rd=new Scanner(System.in);
               String  content=rd.next();       
               content=content.replace("TMD","***");
               System.out.println(content);
    
    • 1
    • 2
    • 3
    • 4

    请添加图片描述


    ⚡replace()和replaceAll()的区别⚡

    注意:replaceAll在遇到正则表达式字符的时候会报错要加转义字符才行
    
    • 1

    ​ 例子:

             String s="hello\\hello\\hello";
             String replace=s.replace("\\","55");
            
    //      String replaceAll=s.replaceAll("\\","55");  //报错不支持这个语法
            String replaceAll2=s.replaceAll("\\\\","55");  //这个样子才成功
    
    
            System.out.println(replace);    //hello55hello55hello
            System.out.println(replaceAll2);  //hello55hello55hello
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    请添加图片描述


    请添加图片描述


    总结:

            尽量用replace,因为和replaceAll是一样的替换所有的结果
    
    • 1

    作者:KJ.JK

    文章对你有所帮助的话,欢迎给个赞或者 star,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习

  • 相关阅读:
    基于JavaSwing开发书店管理系统+论文 毕业设计 课程设计 大作业
    通过内网穿透远程控制家中Home Assistant智能家居系统
    Netflow相关技术
    MySQL需要了解的常用命令
    Vue系列(一)之 Vue入门,Vue的生命周期以及前后端分离介绍
    k8s pod 无法启动一直ContainerCreating
    艾美捷山羊抗人IgG-AP化学性质&曲线展示
    luogu P3842 [TJOI2007]线段
    最新AI智能创作系统源码V2.6.2/AI绘画系统/支持GPT联网提问/支持Prompt应用
    ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘解决方法
  • 原文地址:https://blog.csdn.net/m0_47384542/article/details/125792612
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号