Java String、StringBuffer 和 StringBuilder 的区别和理解(一)

简介: Java String、StringBuffer 和 StringBuilder 的区别和理解(一)

String


String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。


String声明为final的,不可被继承


String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小


String在内部定义了final的char型数组(final char[]),用于存储字符串数据。


String代表一个不可变的字符序列。具有不变性。


/** The value is used for character storage. */
private final char value[];
/** The offset is the first index of the storage that is used. */
private final int offset;
/** The count is the number of characters in the String. */
private final int count;

初始化方式:常用的两种:

//通过字面量的方式定义
String s1 = "java";
//通过new + 构造器方式
String s2 = new String("java2");

会开辟两块堆内存空间,不会自动保存在常量池中,可以使用intern()方法手工入池。


String的常用用法详解

1.int length():返回字符串的长度

String s1 ="HelloWorld";
System.out.println(s1.length());//10

2.char chaeAt():返回索引处(index)的字符

String s1 ="HelloWorld";
System.out.println(s1.charAt(5));//W

 3.boolean isEmpty():判断是否是空字符串

String s1 ="HelloWorld";
System.out.println(s1.isEmpty());//false


4.String toLowerCase():使用默认语言环境,将String中的所有字符转换为小写

String s1 ="HelloWorld";
String s2 = s1.toLowerCase();
System.out.println(s2);//helloworld


5.String toUpperCase():使用默认语言环境,将String中的所有字符转换为大写(toLowerCase() 小写)

String str = "HELLO" ; 
System.out.println(str.toLowerCase());  //hello
String str = "hello" ; 
System.out.println(str.toUpperCase());  // HELLO


6.String trim():返回字符串的副本,忽略字符串前和字符串后的空白

String s3 = "     he   ll   o   w  or l d      ";
String s4 = s3.trim();
System.out.println("----------" + s4 + "-----------");
//"he   ll   o   w  or l d"

7.boolean equals():比较两个字符串的内容是否相同

String s6 = "abc";
 String s7 = "cde";
 System.out.println(s6.equals(s7));//false


8.String concat():将指定字符串连接到此字符串的结尾。

String s1 = "abc";
System.out.println(s1.concat("def"))//abcdef


9.int compareTo():比较两个字符串的大小

String s6 = "abc";
String s7 = "cde";
int i = s6.compareTo(s7);
System.out.println(i);//-2


10.String substring((int beginIndex):返回一个新的字符串,它是此字符串的从 beginIndex开始截取到最后的一个子字符串

String s8 = "你是如此美丽";
 String s9 = s8.substring(2);
 System.out.println(s9);//如此美丽


11.boolean contains(CharSequence s):当且仅当此字符串包含指定的 char 值序列 时,返回 true

String str1 = "helloworld";
String str2 = "wo";
boolean b4 = str1.contains(str2);//true

12.int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引

String str1 = "helloworld";
System.out.println(str1.indexOf("lo"));//3
//若不存在,返回-1


13.int lastIndexOf(String str):返回指定子字符串在此字符串中最右边出现处的索引

String str1 = "helloworld";
System.out.println(str1.lastIndexOf("o"));//6


14.String replace(char oldChar, char newChar):返回一个新的字符串,它是 通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

15.boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。

16.String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。

相关文章
|
20小时前
|
Java 编译器 ice
【Java开发指南 | 第十五篇】Java Character 类、String 类
【Java开发指南 | 第十五篇】Java Character 类、String 类
13 1
|
20小时前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
10 1
|
20小时前
|
存储 缓存 安全
【 Java中String源码分析(JVM视角你不来看看?】
【 Java中String源码分析(JVM视角你不来看看?】
14 0
|
20小时前
|
安全
String、StringBuuffer、StringBuilder三者的区别
String、StringBuuffer、StringBuilder三者的区别
|
20小时前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
16 0
|
20小时前
|
缓存 Java
Java中循环创建String对象的内存管理分析
Java中循环创建String对象的内存管理分析
29 2
|
20小时前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
21小时前
|
Java 索引
Java String应用与开发
Java String应用与开发
22 0
|
21小时前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
9 0
|
20小时前
|
存储 缓存 Java