String类位于java.lang包中,和数组一样都是引用类型。如果在应用程序中处理不好字符串,那么这个程序很可能寸步难行。
一、字符串的创建
1.String(char a[])
使用字符数组a来创建String对象
例如:
char a[] = {'h','e','l','l','o'};
String str = new String(a);
2.String(char a[],int offset,int length)
提取字符数组a中的一部分来创建一个String对象,offset表示截取字符串的起始位置(索引),length表示截取字符串的长度
例如:
char b[] = {'w','o','r','l','d'};
String str2 = new String(b,3,2);
3.引用字符串常量创建字符串变量,如果两个变量引用的是同一个字符串常量,则其在内存中指向同一块空间。
例如:
String str3;
str3 = "I love Java";
二、字符串的连接
字符串的连接可以通过“+”号来实现。
1.当字符串和字符串连接时,就是普通的拼接
例如:
String str1 = newString("Hello");
String str2 = newString("World");
String str = str1 + " " + str2;
2.当字符串和其他数据类型连接时,只要“+”号连接的操作数有一个是字符串,那么另一个操作数也将转成字符串
例如:
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5"); //10=5+5
三、与字符串相关的方法
int length() | 获取字符串的长度 |
int indexOf(String s) | 获取第一次出现s的位置。如果找不到返回-1。如果s="",返回0 |
int lastIndexOf(String s) | 获取最后一次出现s的位置。如果找不到返回-1。如果s="",返回字符串的长度,即length()方法的返回值 |
char charAt(int index) | 获取指定位置的字符 |
String substring(int beginIndex) | 获取从beginIndex到结尾位置的字符串 |
String substring(int beginIndex, int endIndex) | 获取从[beginIndex,endIndex)位置的字符串 |
String trim() | 返回字符串的副本去除前导和尾部空格 |
String replace(char oldChar,char newChar) | 把指定的字符oldChar替换成新的字符newChar,严格区分大小写,如果没有替换则返回原字符串,否则返回新的字符串 |
boolean startsWith(String prefix) | 判断字符串是否以prefix开头 |
boolean endsWith(String suffix) | 判断字符串是否以suffix结束 |
boolean equals(String anotherString) | 判断字符串和anotherString是否相等,严格区分大小写 |
boolean equalsIgnoreCase(String anotherString) | 判断字符串和anotherString是否相等,忽略大小写 |
int compareTo(String anotherString) | 按字典序比较两个字符串,如果String对象位于参数anotherString之前,则返回负整数;如果String对象位于参数anotherString之后,则返回正整数;如果相等,则返回0(当且仅当equals(anotherString)返回true时) |
String toLowerCase() | 将大写字母改成小写字母,如果没有替换则返回原字符串,否则返回新的字符串 |
String toUpperCase() | 将小写字母改成大写字母,如果没有替换则返回原字符串,否则返回新的字符串 |
String[] split(String regex) | 根据指定分割符regex对字符串分割,分割符可以使用正则表达式,当定义多个分割符时,使用符号“|” |
String[] split(String regex, int limit) | 根据指定分割符regex对字符串分割,并限定分割次数limit |