String字符串的基本使用

107 阅读3分钟

String字符串的基本使用

一、String类的概述
java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例。
1.特点
1)字符串不变:字符串的值在创建后不能被更改。
例:
String s1 = "abc";s1 += "d";System.out.println(s1); // "abcd" // 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
2)因为String对象是不可变的,所以它们可以被共享。
例:
String s1 = "abc";
String s2 = "abc";
// 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
3)“abc”等效于char[] data = {'a','b','c'}但是底层原理是字节数组( byte[] )
例:
String str = "abc";
相当于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
// String底层是靠字符数组实现的。

2.构造方法

public String():初始化新创建的 String对象,以使其表示空字符序列。
public String (char[] value):通过当前参数中的字符数组来构造新的String。
public String (byte[] bytes):通过使用平台的默认字符集解码当前参数中的字节数组来构造新的String。
直接赋值的方式创建字符串对象

3.判断方法

public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。

4.==和equals的区别

==比较基本数据类型:比较的是具体的值
==比较引用数据类型:比较的是对象地址值
equals比较String类型: 比较的是对象的内容是否相同

5.获取功能的方法

public int length () :返回此字符串的长度。
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :返回指定索引处的 char值。
public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。

6.转换功能的方法

public char[] toCharArray () :将此字符串转换为新的字符数组。
public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。

7.分割方法

public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。

二、StringBuilder的使用
1.概述

StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。原来StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。原理如下图所示:(默认16字符空间,超过自动扩充)2.StringBuilder类和String类的区别
String类:内容是不可变的
StringBuilder类:内容是可变的
3.构造方法

public StringBuilder():构造一个空的StringBuilder容器。
public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去
4.常用方法

public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
public StringBuilder reverse():返回反转的字符序列
public String toString():将当前StringBuilder对象转换为String对象。
5.StringBuilder和String相互转换

StringBuilder转换为String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String

String转换为StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder