字符串是一个完整的字符序列,可以包含字母、数字和其他符号。它是程序设计中经常使用的数据结构, 很多编程语言将字符串定义为基本数据类型,但是在Java语言中,字符串被定义为一个类 , 无论是字符串常量还是变量,都必须先生成 String类的实例对象后才能使用。
java.lang 包含两个字符串类 String 和 StringBuffer ,它们两个封装了字符串的全部操作。
String str = "hello";
str = new StringBuffer().append(str).append("world!").toString();
“+” 可以把一个非字符串的数值连接到字符串尾部,编译器将自动把非字符串转换为字符串进行连接, 例如 String str = “hello” , str = str + 2,最后结果为hello2。
String str = "a short string";
String s1 = str.substring(2);
String s2 = str.substring(8, 14);
运行结果:
short string
string
substring 方法起始位置从 0 开始,如substring(8,14)即输出第8位到 第13位,
字符串比较
.equals() ,用于比较两个字符串是否相等。返回值为布尔值。
.compareTo() ,用于按字符顺序比较两个字符串,返回值为整型数。
方法:
boolean equals(Object object)
boolean equalsIgnoreCase(String str) //忽略字符大小写
int compareTo( Object object) 如果比较中字符较大,则为正数,如果较小,则为负数。
int compareTo(String str)
int compareToIgnoreCase(String str) //忽略字符大小写
数组复制到字符串
一个字符数组的内容可以全部或部分地拷贝到一个字符串中,有两个静态方法用于这种复制:
static String copyValueOf(char[ ] data)
static String copyValueOf( char[ ] data, int offset, int count) offset 起始位置, count个数
char[] c = { ‘A’, ’ ‘, ‘c’ , ’ h’ , ’ a’ , ‘r’ };
String s1 = new String;
s1 = s1.copyValueOf©;
字符串大小写转换
.toUpperCase() , .toLowerCase() 方法
字符串检索
可以在一个字符串中检索指定字符或子串的位置, 如果检索到将返回一个代表位置的整数,否则返回 -1 ,
方法: indexOf() 返回字符或子串首次出现的位置, lastIndexOf 方法返回字符或子串最后一次出现的位置。
字符串转化为数组
字符串可以转换为字节数组或字符数组,这种转换在Java流处理中十分有用,字符串转为字节数组将进行特别处理,因为字符是16位长, 而字节为 8位长,所有要将字符的高 8 位去掉,只留低 8 位成为一个字节,有三个方法:
byte [ ] getBytes(); 按系统默认字符集编码转换为字符节数组
byte [ ] getBytes(String enc) enc 为字符集编码
char [ ] toCharArray() 转换为字符数组
转换为字符串
String 类提供了一组 valueOf() 方法用来将其他数据类型转化为字符串, 其参数可以任何数据(byte类型除外),它们都是静态的,也就是说不必创建实例化就可以直接调用这些方法,其基本用法为:valueOf()(数据类型)。
public class Classin {
public static void main(String[] args) {
byte byteArr[];
char[] charArr;
String str = " This is a test string";
byteArr = str.getBytes();
charArr = str.toCharArray();
System.out.println(charArr);
System.out.println(String.valueOf(3<2));
}
}
运行结果:
This is a test string
false
StringBuffer提供的方法最主要的有两组,一组是 append ,另一组是 insert 。
append 的 10 个方法主要在参数上有所不同,它可以把各种数据类型转换成字符串数据后添加进来(byte类型除外),其基本用法为: append(数据类型)。例如:
StringBuffer buffer = new StringBuffer();
buffer.append(100), 输出 buffer 时可调用 toString 方法将其转换为字符串。
inset 方法
insert 方法和 append 方法很类似, 唯一不同时多了个位置参数,位置参数必须大于等于 0 。 基本用法: insert(插入位置,数据类型)。
删除、替换与翻转方法
public StringBuffer delete (int start, int end) //删除子串
public StringBuffer deleteCharAt( int index) // 删除指定位置的字符
public StringBuffer replace( int start , int end , String str) //替换子串
StringBuffer reverse() //翻转字符串