详解Java String类常用方法有哪些

 更新时间:2021年06月16日 11:53:34   作者:飞鸽不是鸽  
今天给大家带来的是关于Java String的相关知识,文章围绕着String类常用方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下

一、构造器

实质是给底层的char数组value赋值

String s1 = new String();

在这里插入图片描述

String s2 = new String(“abc”);

在这里插入图片描述

String s3 = new String(new char[]{‘a',‘b',‘c'});

在这里插入图片描述 

二、方法

str.length() 字符串长度本质是底层的char数组的长度

在这里插入图片描述

str.isEmpty() 本质是判断底层char数组长度是否为0

在这里插入图片描述

str.charAt(i) 本质是取底层char数组的第i个元素(字符)

在这里插入图片描述

str1.equals(str2)本质是比较二者底层char数组的元素是否都相等

在这里插入图片描述

str1.compareTo(str2)本质是返回二者底层char数组中第一个不同元素(字符的码值)之差,如果没有不同元素,则返回二者底层char数组长度之差。如果返回0,说明二者底层char数组相同。

在这里插入图片描述 

三、常用方法

package com.llg.learnString;


import java.util.Arrays;
import java.util.Locale;

public class Learn01 {
    //程序的入口
    public static void main(String[] args) {
        String s11 = "abcdefghijk";
        System.out.println(s11);
        //字符串截取 从第3位开始取到最后
        System.out.println(s11.substring(3));//defghijk
        //字符串截取 从第3位开始取到第6位最后
        System.out.println(s11.substring(3, 6));//def
        //字符串合并拼接 把zzzzz拼接到后面
        System.out.println(s11.concat("zzzzz"));//abcdefghijkzzzzz
        //字符串中的字符替换 把b替换为x
        System.out.println(s11.replace('b','x'));//axcdefghijk

        String s12 = "a-b-c-def-ghi-jk";
        //字符串分割 以-分割字符串,返回字符串数组
        String[] strarr= s12.split("-");
        System.out.println(Arrays.toString(strarr));//[a, b, c, def, ghi, jk]

        //转换为小写
        String s13 = "abc";
        System.out.println(s13.toUpperCase());//ABC
        //转换为大写
        String s14 = "ABC";
        System.out.println(s14.toLowerCase());//abc
        //去除首尾空格
        String s15 = "  a b c def ";
        System.out.println(s15.trim());//a b c def

        //toString
        String s16 = "abc";
        System.out.println(s16.toString());//abc

        //转换为字符串String.valueOf
        System.out.println(String.valueOf(true));//true
        System.out.println(String.valueOf(false));//false
    }
}

在这里插入图片描述

四、String的内存分析

4.1、无变量参与的字符串拼接,编译后只存在结果字符串

编译器优化

在这里插入图片描述
在这里插入图片描述 

4.2、new String(“abc”)新的字符串对象

在这里插入图片描述

4.3、变量参与的字符串拼接,编译器不会优化

在这里插入图片描述

反汇编查看javap -c Learn5.class

在这里插入图片描述
在这里插入图片描述

到此这篇关于详解Java String类常用方法有哪些的文章就介绍到这了,更多相关String类常用方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mybatis Plus 自定义方法实现分页功能的示例代码

    Mybatis Plus 自定义方法实现分页功能的示例代码

    这篇文章主要介绍了Mybatis Plus 自定义方法实现分页功能的示例代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Spring自定义注解配置简单日志示例

    Spring自定义注解配置简单日志示例

    这篇文章主要介绍了Spring自定义注解配置简单日志示例,注解可以增强我们的java代码,同时利用反射技术可以扩充实现很多功能,它们被广泛应用于三大框架底层,需要的朋友可以参考下
    2023-05-05
  • Spring boot中filter类不能注入@Autowired变量问题

    Spring boot中filter类不能注入@Autowired变量问题

    这篇文章主要介绍了Spring boot中filter类不能注入@Autowired变量问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java下载远程服务器文件到本地(基于http协议和ssh2协议)

    Java下载远程服务器文件到本地(基于http协议和ssh2协议)

    这篇文章主要介绍了Java下载远程服务器文件到本地的方法(基于http协议和ssh2协议),帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • Java使用Google Zxing生成二维码的例子

    Java使用Google Zxing生成二维码的例子

    本篇文章主要介绍了Java使用Google Zxing生成二维码的例子。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • javaweb上传下载实例完整版解析(上)

    javaweb上传下载实例完整版解析(上)

    这篇文章主要为大家详细解析了javaweb上传下载实例,本文重点在于文件上传功能的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 详解Java中布隆过滤器(Bloom Filter)原理及其使用场景

    详解Java中布隆过滤器(Bloom Filter)原理及其使用场景

    布隆过滤器是1970年由布隆提出的,它实际上是一个很长的二进制向量和一系列随机映射函数,它的作用是检索一个元素是否存在我们的集合之中,本文给大家详细的讲解一下布隆过滤器,感兴趣的同学可以参考阅读
    2023-05-05
  • Mybatis实战教程之入门到精通(经典)

    Mybatis实战教程之入门到精通(经典)

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架,通过本文给大家介绍Mybatis实战教程之入门到精通,对mybatis实战教程相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Java中Socket用法详解

    Java中Socket用法详解

    本文详细讲解了Java中Socket的用法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • Spring-boot原理及spring-boot-starter实例和代码

    Spring-boot原理及spring-boot-starter实例和代码

    spring-boot的starter是一个通过maven完成自包含并通过annotation配置使得可被spring上下文发现并实例化的一个可插拔的组件或服务。这篇文章主要介绍了Spring-boot原理及spring-boot-starter实例和代码 ,需要的朋友可以参考下
    2019-06-06

最新评论