API
String
String类的概述
什么是字符串
多个字符表示的一串数据,也可以看成是一个字符数组
String 类
String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
//演示字符串
String str = “aaa”;
str = “我是字符串”;String字符串常量特点
字符串是常量;它们的值在创建之后不能更改,这是什么意思呢?
就是说一旦这个字符串确定,那么就会在内存区域中生成这个字符串。
字符串本身不能改变,但 str 变量中记录的地址值是可以改变的。
String的构造方法
构造方法是用来完成 String对象的创建,如下所示,列出常用的构造方法
/**
* public String():空构造
* public String(byte[] bytes):把字节数组转成字符串
* public String(byte[] bytes,int index,int length):把字节数组的一部分
转成字符串
* public String(char[] value):把字符数组转成字符串
*
* public String(char[] value,int index,int count):把字符数组的一部分转
成字符串,index 第一位开始取(包括),count 取多少个
*
* public String(String original):把字符串常量值转成字符串
*
* length() 返回此字符串的长度。
*/
String两种方式创建字符串的区别
String特点:一旦被赋值就不能改变
通过使用双引号的方式创建对象与 new 的方式创建对象,有什么不同呢?看如下程序与图解:
String s3 = “abc”;
String s4 = new String(“abc”);
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true,
//因为 String 重写了 equals 方法,建立了字符串自己的判断相同的依据(通过字
符串对象中的字符来判断)
s3 和s4的创建方式有什么不同呢?
s3创建,在内存中只有一个对象。这个对象在字符串常量池中
s4 创建,在内存中有两个对象。一个 new 的对象在堆中,一个字符串本身对象,在字符串常量池中
String类的判断功能
部分判断方法如下
//boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
//boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小
写
//boolean contains(String str):判断大字符串中是否包含小字符串
//boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
//boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾
//boolean isEmpty():判断字符串是否为空。
String类的获取功能
/**
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置
后第一次出现处的索引。
int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
String substring(int start):从指定位置开始截取字符串,默认到末尾。
String substring(int start,int end):从指定位置开始到指定位置结束截取
字符串。
*/
String类转换功能
/**
byte[] getBytes():把字符串转换为字节数组。
char[] toCharArray():把字符串转换为字符数组。
static String valueOf(char[] chs):把字符数组转成字符串。
static String valueOf(int i):把int 类型的数据转成字符串。
String toLowerCase():把字符串转成小写。
String toUpperCase():把字符串转成大写。
String concat(String str):把字符串拼接。
*/
String替换功能
/**
String replace(char old,char new):把字符串中的某个字符用新的字符所替换
String replace(String old,String new)把字符串中的某个字符串用新的来替换
String trim() 去除字符串两空格
*/
StringBuffer
StringBuffer类
StringBuffer 又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。
StringBuffer 它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
StringBuffer 的方法使用
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前 StringBuffer 对象的末尾,类似于字符串的连接,调用
该方法以后,StringBuffer 对象的内容也发生改变,此方式比 String 效率更高,经常应用于
数据库 SQL 语句的连接。StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。StringBuffer sb = new StringBuffer(“Dong”);
sb. deleteCharAt(0);
对象 sb 的值变 为”ong”。public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含 start,不包含 end 索引值的区间。StringBuffer sb = new StringBuffer(“Dong”);
sb. delete (1,4);
剩余的字符形成新的字符串。则对象 sb 的值是”D”public StringBuffer insert(int offset, boolean b),
该方法的作用是在 StringBuffer 对象中插入内容,然后形成新的字符串。例如:StringBuffer sb = new StringBuffer(“Dong”);
sb.insert(4,false);
该示例代码的作用是在对象 sb 的索引值 4 的位置插入 false 值,形成新的字符串,则执
行以后对象 sb 的值是”Dongflase”。public StringBuffer reverse()
该方法的作用是将 StringBuffer 对象中的内容反转,然后形成新的字符串。StringBuffer sb = new StringBuffer(“Dong”);
sb.reverse();
经过反转以后,对象 sb 中的内容将变为”gnoD”。public void setCharAt(int index, char ch)该方法的作用是修改对象中索引值为 index 位置
的字符为新的字符 ch。例如:StringBuffer sb = new StringBuffer(“Dong”);
sb.setCharAt(1,’D’);
则对象 sb 的值将变成”DDng”。
对象的方法链式调用
在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。这种时候,我们就可以把代码现在一起,
如 append 方法一样,代码如下:
创建一个字符串缓冲区对象。用于存储数据。
StringBuffer sb = new StringBuffer();
添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。
String str = sb.append(true).append(“hehe”).toString();