一旦被初始化就不可以被改变。
String s1 = new String("abc"); String s2 = "abc"; System.out.println(s1==s2);//false System.out.println(s1.equals(s2));//true
String类复写了Object类中的equals方法,该方法用于判断字符串是否相同。
s1与s2区别?
s2在内存中有一个对象,s1在内存中有两个对象。
String s1 = "abc"; String s2 = new String("abc"); String s3 = "abc"; System.out.println(s1 == s2);//false System.out.println(s1 == s3);//true
已经存在不能被改变,直接用。
获取:
长度:length()
根据索引获取字符:charAt()
根据字符获取索引:可以判断是否包含()
int indexOf(char ch)
int indexOf(char ch, int fromIndex)
int indexOf(String str)
int indexOf(String str, int fromIndex)
反向索引:
改为lastIndexOf就行。
判断:
判断开头:boolean startsWith(String prefix)
是否有内容:boolean isEmpty() length为0
判断结束:boolean endsWith(String suffix)
包含:boolean contains(CharSequence s)
判断内容是否相同:boolean equals(Object anObject) 复写了Object的equals
判断内容是否相同(忽略大小写):boolean equalsIgnoreCase(String anotherString)
转换:
字符数组转成字符串:
构造函数:String(char[] value); String(char[] value, int offset, int count)
静态方法:static String copyValueOf(char[] data) ; static String copyValueOf(char[] data, int offset, int count) ; static String valueOf(char[] data)
字符串转成字符数组:char[] toCharArray()
字节数组转成字符串:
构造函数:String(byte[] value); String(byte[] value, int offset, int count)
字符串转成字节数组:byte[] getBytes(String charsetName)
基本数据类型转化成字符串:static String valueOf(基本数据类型)
特殊:字符串和字符数组在转换过程中是可以指定编码表的。
替换:
String replace(char oldChar, char newChar) 替换的字符不存在,返回原串
切割:
String[] split(String regex)
子串:
String substring(int beginIndex) 到结尾
String substring(int beginIndex, int endIndex)不包含尾
转换,去除空格,比较:
String toUpperCase() 转换成大写
String toLowerCase() 转换成小写
String trim() 去除两端空格
int compareTo(String anotherString) 对两个字符串进行自然顺序的比较 大于正 小于负 ASCII值之差