String的使用
String:字符串,使用一对“”引起来表示
-
String声明为final的,不可被继承
-
String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小
-
String内部定义了final char[] value用于存储字符串数据
-
String:代表不可变的字符序列。简称:不可变性。
-
通过字符量的方式(区别于new)给一个字符串赋值,此时的字符串值声明在字符串常量池中。
-
字符串常量池中是不会存储相同内容的字符串的
结论:
-
常量与常量的拼接结果在常量池。且常量池中不会存在相同内容的常量
-
只要其中有一个是变量,结果就在堆中
-
如果拼接的结果调用intern()方法,返回值就在常量池中。
String常用方法
代码 | 用处 |
---|---|
int length() | 返回字符串的长度:return value.length |
char charAt(int index) | 返回某索引处的字符return value[index] |
boolean isEmpty() | 判断是否是空字符串:return value.lebgth==0 |
String toLowerCase() | 使用默认语言环境,将String中的所有字符串转换为小写 |
String toUpperCase() | 使用默认语言环境,将String中的所有字符串转换为大写 |
String trim() | 返回字符串的副本,忽略前导空白和尾部空白 |
boolean equaIs(Object obj) | 比较字符串的内容是否相同 |
boolean equaIsIgnoreCase(String annotherString) | 与equals方法类似,忽略大小写 |
String concat(String str) | 将指定字符串连接到此字符串的结尾。等价于用“+” |
int compare To(String anotherString) | 比较两个字符串的大小 |
String substring(int beginlndex) | 返回一个新的字符串,他是此字符串的从beginlndex开始截取到最后一个子字符串 |
String substring(int beginlndex,int endlndex) | 返回一个新字符串,它是此字符串从beginlndex开始截取到endlndex(不包含)的一个子字符串 |
boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结束 |
boolean StartsWith(String prefix) | 测试此字符串是否以指定的前缀开始 |
boolean StartsWith(String prefix,int toffset) | 测试此字符串从指定索引开始的子字符串是否以指定前缀开始 |
boolean contains(CharSequence s) | 当且仅当字符串包含指定的char值序列时,返回true |
int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引 |
int indexOf(String str,int fromIndex) | 返回指定子字符串在此字符串中第一次出现的索引,从指定的索引开始 |
int lastlndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引 |
int lastlndexOf(String str,int fromIndex) | 返回指定子字符串在此字符串中最后一次出现的索引,从指定的索引开始反向搜索 |
String replace(char oldChar,char newChar) | 返回一个新的字符串,他是通过newChar替换此字符串中出现的所有oldChar得到的 |
String replace(CharSequence target,CharSequence replacement) | 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串 |
String replaceAll(String regex,String replacement`) | 使用给定的reolacement替换此字符串所有匹配给定的正则表达式的子字符串 |
String replaceFirst(String regex,String reolacement) | 使用给定的reolacement替换此字符串匹配给定的正则表达式的第一个子字符串 |
boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式 |
String[]split(String regex) | 根据给定正则表达式的匹配拆分此字符串 |
String[] split(String regex,int limit) | 根据匹配给定的正则表达式来拆分此字符串,最多不超过limit个,如果超过了,剩下的全部都放到最后一个元素中 |
-
字符串->基本数据类型、包装类
-
Integer包装类的public static int parseInt(String s):可以将由“数字”字符组成的字符串转换为整型
-
类似的,使用Java.lang包中的Byte、Short、long、Float、Double类调相应的类方法可以将由"数字"字符组成的字符串,转换为相应的基本数据类型
-
-
基本数据类型、包装类->字符串
-
调用String类的public String valueOf(int n)可将int型转换为字符串
-
相应的valueOf(byte b)、valueOf(long l)、valueOf(float f)、valueOf(doubled)、valueOf(boolean b)可由参数的相应类型到字符串的转换
-
String与byte[]之间的转换
编码:String-->byte[]:调用String的getBytes()
解码:byte[]-->String:调用String的构造器
String与char[]之间的转换
String-->char[]:调用String的toCharArray()
char[]-->String:调用String的构造器
说明:解码时,要求解码使用的字符集必须与编码时使用的字符集一致,否则会出现乱码