String类适用于描述字符串事物。
字符串最大特点:一旦被初始化就不可以被改变;
字符串直接赋值和new对象存在区别,后者会比前者多创建一个对象,一般建议使用字符串直接赋值;
String类复写了Object类中equals方法,只用于判断字符串是否相同,不判断是否是同一个对象。
常见对字符串的操作:
字符串中的包含的字符数,也就是字符串的长度,返回值为int类型。
int length():获取字符串长度。
根据索引位置获取该位置上的某个字符,返回值char类型。
char charAt(int index):获取字符串某位置上字符。
int indexOf(int ch):返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex):从formIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。
同样规则的还有lastIndexOf系列函数,不过它与indexOf函数取值方向相反,它是在字符串后边开始。
注意
1.当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException(角标越界异常),这也是使用字符串时,比较容易出现的异常。
2.当使用indexOf函数没有找到要寻找的字符或字符串时,返回-1。
3.lastIndexOf系列函数是反向索引一个字符出现位置,与indexOf方向相反,在字符串最后开始寻找。
boolean contains(str):
例:str.contains(“Demo”); // 判断文件中是否包含” Demo”
与indexOf(str)对比:indexOf(str) 可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在,所以indexOf(str)也可以用于对指定子串判断是否包含。
例:if(str.indexOf(aa)!=-1)
区别:indexOf(str)既可以判断是否包含子串,又可以获取该子串出现的位置。
boolean isEmpty():原理就是判断字符串长度是否为0。
boolean startsWith(str);
例:str. startsWith (“Array”); // 判断文件名称是否是Array单词开头
boolean endsWith(str);
例:str. endsWith (“.java”); // 判断文件名称是否是.java的文件
boolean equals(str);
复写了Object类中的equals方法,只判断字符串内容是否相同。
扩展:
忽略大小写,判断内容是否相同
boolean equalsIgnoreCase();
构造函数: String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[] data)
static String copyValueOf(char[] data,int offset,int count)
static string valueOf(char[] data)
char[] toCharArray()
String(byte[])
String(byte[],offset,count):将字节数组中的一部分转成字符串。
byte[] getBytes()
static String valueOf(int)
static String valueOf(double)
……
例如:int转String类型的两种方式:
3+””; String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
String replace(oldchar,newchar);如果要替换的字符不存在,返回的还是原串。
String[] split(regex);
String substring(begin):从指定位置开始到结尾 如果角标不存在,会出现字符串角标越界异常。
String substring(begin,end):包含开头,不含结尾。
获取全部字符串方法:str.substring(0,str.length());
String toUpperCase(); // 大写
String toLowerCase(); // 小写
String trim();
比较基于字符串中各个字符的 Unicode 值:
int compareTo(string);
返回值:
如果参数字符串等于此字符串,则返回值 0;如果此字符串按字典顺序小于字符串参数,则返回一个小于 0 的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于 0 的值。