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

今天给大家带来的是关于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类常用方法有哪些的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java