String类中的一些常用方法(JAVA)

简介: 字符串比较方法:boolean equals(Object anObject): int compareTo(String s):int compareToIgnoreCase(String str)字符串查找方法:char charAt(int index):int indexOf(int ch): int indexOf(int ch, int fromIndex):int indexOf(String str):int indexOf(String str, int fromIndex):int lastIndexOf(int ch):int

字符串比较方法:

boolean equals(Object anObject):

比较两个字符串是否相等,相等返回ture,否则返回false

publicstaticvoidmain(String[] args) {
Stringa="asdf";
System.out.println(a.equals("aaa"));
System.out.println(a.equals("asdf"));
}

image.gif

image.png

int compareTo(String s):

比较两个字符串是否相等,先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值;如果前k个字符相等(k为两个字符长度最小值),返回两个字符串长度差值。

publicstaticvoidmain(String[] args) {
Stringa="asdf";
System.out.println(a.compareTo("aaa"));
System.out.println(a.compareTo("asdf"));
System.out.println(a.compareTo("asd"));
    }

image.gifimage.png

 int compareToIgnoreCase(String str)

忽略字符大小写进行比较,返回值规则为:

    • 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
    • 如果前k个字符相等(k为两个字符长度最小值),返回两个字符串长度差值。
    publicstaticvoidmain(String[] args) {
    Stringa="asdf";
    System.out.println(a.compareToIgnoreCase("aaa"));
    System.out.println(a.compareToIgnoreCase("ASDF"));
    System.out.println(a.compareToIgnoreCase("asd"));
        }

    image.gif

    image.png

    字符串查找方法:

    char charAt(int index):

    返回index位置上字符,如果index为负数或者越界,抛出IndexOutOfBoundsException异常。

    publicstaticvoidmain(String[] args) {
    Stringa="asdf";
    System.out.println(a.charAt(0));
    System.out.println(a.charAt(3));
    System.out.println(a.charAt(5));
        }

    image.gif

    image.png

    int indexOf(int ch):

    返回ch第一次出现的位置,没有则返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.indexOf('d'));
    System.out.println(a.indexOf('a'));
    System.out.println(a.indexOf('h'));
        }

    image.gif

    image.png

    int indexOf(int ch, int fromIndex):

    从fromIndex位置开始找 ch 返回第一次出现的位置,没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.indexOf('d', 3));
    System.out.println(a.indexOf('a', 1));
    System.out.println(a.indexOf('h',0));
        }

    image.gif

    image.png

    int indexOf(String str):

    返回str第一次出现的位置,没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.indexOf("dd"));
    System.out.println(a.indexOf("ss"));
        }

    image.gifimage.png

    int indexOf(String str, int fromIndex):

    从fromIndex位置开始找str第一次出现的位置,没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.indexOf("dd", 3));
    System.out.println(a.indexOf("ss", 0));
        }

    image.gif

    image.png

    int lastIndexOf(int ch, int fromIndex):

    从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.lastIndexOf('d', 2));
    System.out.println(a.lastIndexOf('d', 3));
    System.out.println(a.lastIndexOf('d', 4));
    System.out.println(a.lastIndexOf('g', 5));
        }

    image.gif

     image.png

    int lastIndexOf(String str):

    从后往前找,返回str第一次出现的位置,没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.lastIndexOf("dd"));
    System.out.println(a.lastIndexOf("as"));
    System.out.println(a.lastIndexOf("bv"));
        }

    image.gifimage.png

    int lastIndexOf(String str, int fromIndex):

    从后往前找str第一次出现的位置,如果此位置的下标不大于fromIndex则返回,否则继续往前找。没有返回-1

    publicstaticvoidmain(String[] args) {
    Stringa="asdddf";
    System.out.println(a.lastIndexOf("dd", 3));
    System.out.println(a.lastIndexOf("dd", 2));
    System.out.println(a.lastIndexOf("dd", 1));
    System.out.println(a.lastIndexOf("as", 0));
    System.out.println(a.lastIndexOf("bv", 0));
        }

    image.gif

    image.png

    字符串的转化

    数字转字符串

        字符串转整形

    publicstaticvoidmain(String[] args) {
    Stringstr="123";
    inta1=Integer.parseInt(str);
    longa2=Long.parseLong(str);
    System.out.println(a1+" "+a2);
        }

    image.gif

        字符串转浮点型

    publicstaticvoidmain(String[] args) {
    Stringstr="123";
    doublea2=Double.parseDouble(str);
    floata3=Float.parseFloat(str);
    System.out.println(a2+" "+a3);
        }

    image.gif

    String.valueOf():

    所有基本类型值转化为字符串类型

    publicstaticvoidmain(String[] args) {
    Strings1=String.valueOf(1234);
    Strings2=String.valueOf(12.34);
    Strings3=String.valueOf(true);
    Strings4=String.valueOf('a');
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s3);
    System.out.println(s4);
        }

    image.gif

    image.png

    String toUpperCase();

    String toLowerCase():

    返回一个将原字符串转为大写新串 。

    返回一个将原字符串转为小写新串 。

    publicstaticvoidmain(String[] args) {
    Strings1="heLLo";
    Strings2="HEllO";
    System.out.println(s1.toUpperCase());
    System.out.println(s2.toLowerCase());
        }

    image.gif

    image.png

    char[] toCharArray();

    String(char value[]):

    字符串转为数组原字符串不会受到影响

    数组转为字符串原数组不会受到影响

    publicstaticvoidmain(String[] args) {
    Strings="hello";
    char[] ch=s.toCharArray();
    System.out.println(Arrays.toString(ch));
    Strings2=newString(ch);
    System.out.println(s2);
        }

    image.gif

    image.png

    字符串替换方法:

    String replaceAll(String regex, String replacement):

    替换所有的指定内容

    publicstaticvoidmain(String[] args) {
    Stringstr="helloworld" ;
    System.out.println(str.replaceAll("l", "O"));
        }

    image.gif

    image.png

    String replaceFirst(String regex, String replacement)

    替换首个内容

    publicstaticvoidmain(String[] args) {
    Stringstr="helloworld" ;
    System.out.println(str.replaceFirst("l", "O"));
        }

    image.gif

    image.png

    String[] split(String regex):

    将字符串全部拆分

    publicstaticvoidmain(String[] args) {
    Stringstr="hello world hello" ;
    String[] result=str.split(" ") ; // 按照空格拆分for(Strings: result) {
    System.out.println(s);
            }
        }

    image.gif

    image.png

    String substring(int beginIndex, int endIndex):

    截取 [ beginIndex ,endIndex ) 范围内的字符串

    publicstaticvoidmain(String[] args) {
    Stringstr="helloworld" ;
    System.out.println(str.substring(0, 5));
        }

    image.gifimage.png






    目录
    相关文章
    |
    8天前
    |
    存储 JSON Java
    《从头开始学java,一天一个知识点》之:方法定义与参数传递机制
    **你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 🚀 这个系列就是为你打造的Java「速效救心丸」!我们承诺:每天1分钟,地铁通勤、午休间隙即可完成学习;直击痛点,只讲高频考点和实际开发中的「坑位」;拒绝臃肿,没有冗长概念堆砌,每篇都有可运行的代码标本。上篇:《输入与输出:Scanner与System类》 | 下篇剧透:《方法重载与可变参数》。
    42 25
    |
    8天前
    |
    缓存 安全 Java
    《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
    你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
    36 19
    |
    2天前
    |
    存储 监控 安全
    重学Java基础篇—类的生命周期深度解析
    本文全面解析了Java类的生命周期,涵盖加载、验证、准备、解析、初始化、使用及卸载七个关键阶段。通过分阶段执行机制详解(如加载阶段的触发条件与技术实现),结合方法调用机制、内存回收保护等使用阶段特性,以及卸载条件和特殊场景处理,帮助开发者深入理解JVM运作原理。同时,文章探讨了性能优化建议、典型异常处理及新一代JVM特性(如元空间与模块化系统)。总结中强调安全优先、延迟加载与动态扩展的设计思想,并提供开发建议与进阶方向,助力解决性能调优、内存泄漏排查及框架设计等问题。
    16 5
    |
    9天前
    |
    缓存 安全 Java
    《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
    🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
    39 11
    |
    2天前
    |
    安全 IDE Java
    重学Java基础篇—Java Object类常用方法深度解析
    Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
    12 1
    |
    15天前
    |
    Java
    课时14:Java数据类型划分(初见String类)
    课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
    |
    15天前
    |
    存储 Java 编译器
    课时11:综合实战:简单Java类
    本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
    |
    15天前
    |
    存储 JavaScript Java
    课时44:String类对象两种实例化方式比较
    本次课程的主要讨论了两种处理模式在Java程序中的应用,直接赋值和构造方法实例化。此外,还讨论了字符串池的概念,指出在Java程序的底层,DOM提供了专门的字符串池,用于存储和查找字符串。 1.直接赋值的对象化模式 2.字符串池的概念 3.构造方法实例化
    |
    15天前
    |
    Oracle Java 关系型数据库
    课时37:综合实战:数据表与简单Java类映射转换
    今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
    |
    2天前
    |
    Java 开发者
    重学Java基础篇—Java类加载顺序深度解析
    本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
    18 0