---------------------- android培训、java培训、期待与您交流! ----------------------
每天总结一点点,为进黑马而努力!
一:String 类?
字符串是一个特殊的对象,字符串一旦被初始化就不可以改变
String s1="abc"; //s1 是一个类类型变量,指向了一个对象“abc” ,一旦初始化就不可以改变,在内存中只有一个对象
String s2=new String("abc"); //在内存中有两个对象
总结:字符串自身的特点:
1.它是一个对象
2.它是一个常量,不能被改变
3.s1 和s2的区别
4.字符串的比较有自己独特的方式equals判断内容是否相同
二、字符串常见的操作有哪些?
1.获取
1.字符串中包含的字符的个数,也就是字符串的长度
int length() 获取长度
2.根据位置上获取指定位置上的字符
char charAt(int index)
3.根据字符获取在字符串中的位置
int indexOf(int ch) //返回指定字符在此字符串中第一次出现处的索引。
int indexOf(int ch,int fromIndex) //返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
int indexOf(String str) //返回指定子字符串在此字符串中第一次出现处的索引。
int indexOf(String str,int fromIndex) //返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
int lastIndexOf(int ch) //返回指定字符在此字符串中最后一次出现处的索引。
int lastIndexOf(int ch,int fromIndex) //返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
int lastIndexOf(String str) //返回指定子字符串在此字符串中最右边出现处的索引。
int lastIndexOf(String str,int fromindex) //返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
2.判断
1.字符串中是否包含某一个字串?
boolean contains(String str) //当且仅当此字符串包含指定的 char 值序列时,返回 true。
特殊之处:indexOf(str) //可以索引str在字符串中第一次出现的位置,如果为-1,则不存在
所以也可以用于对指定字符串的判断是否包含,if(str.indexOf("aa")!=-1) 而且该方法既可以判断字符串是否包含又可以获取出现的位置
如果只为判断,如果既要判断,又要那位置,则使用indexOf()最方便,对象直接调用
2.字符串中是否有内容?
boolean isEmpty() //当且仅当 length() 为 0 时返回 true。
3.字符串是否以指定内容开头?
boolean startsWith(String str) //测试此字符串是否以指定的前缀开始。
boolean startsWith(String str,int toffset) // 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
4.字符串是否以指定内容结尾?
boolean endsWith(String str) //测试此字符串是否以指定的后缀结束。
5.判断字符串的内容是否相同
boolean equals(Object obj) // 将此字符串与指定的对象比较。复写了Object类中的equals方法,比较的是对象
6.判断字符串内容是否相同,并忽略大小写
boolean equalsIgnoreCase(String str) // 将此 String 与另一个 String 比较,不考虑大小写。
3.转换
1、将字符数组转成字符串
构造函数: new String(char[] value) // 分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
new String(char[] value,int offset, int count) //分配一个新的 String,它包含取自字符数组参数一个子数组的字符。
new String(value,0,value.length) //整个数组
静态方法: static String copyValueOf(char[] value)
static String copyValueOf(char[] value,int offset,int count)
static String valueOf(char[] value) //返回 char 数组参数的字符串表示形式。
static String valueOf(char[] value,int offset,int count) //返回 char 数组参数的特定子数组的字符串表示形式
2、将字符串转成字符数组
char[] toCharArray() //将此字符串转换为一个新的字符数组。
3、将字节数组转成字符串
构造函数: new String(byte[] bytes) // 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
new String(byte[] bytes,int offset,int length)// 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
new String(byte[] bytes,Charset charset) //通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
new String(byte[] bytes,String charsetName) // 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
new String(byte[] bytes,int offset,int length,Charset charset)// 通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。
new String(byte[] bytes,int offset,int length,String charsetName) // 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。
4、将字符串转成字节数组
byte[] getBytes() // 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
byte[] getBytes(Charset charset) //使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。
byte[] getBytes(String charsetName) // 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
注意:字符串和字节数组转换过程中是可以指定编码表的,但凡做编码操作必须编程字节数组才可以,字符数组不行
5、将基本数据类型转换成字符串
static String valueOf(int i) //返回 int 参数的字符串表示形式。
// 3+""; String.valueOf(3) ;专业写法,但第一个中常用,将3转换成字符串类型
static String valueOf(long l) // 返回 long 参数的字符串表示形式。
static String valueOf(float f) // 返回 float 参数的字符串表示形式。
static String valueOf(double d) // 返回 double 参数的字符串表示形式。
static String valueOf(double c) // 返回 char 数组参数的字符串表示形式。
static String valueOf(boolean b) //返回 boolean 参数的字符串表示形式。
6、如何将字符串指定的部分赋值到目标数组里
void getChars(int srcBegin,int srcEnd,char[] dst,dstBegin) //使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
char[] dst=new char[10];
String str="adfadf;"
str.getChars(1,4,dst,1); 包含头不包含尾
4.替换
1.字符串中的字符替换操作 /
String replace(char oldChar,char newChar) //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
String replace(CharSequence target,CharSequence replacement) //使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
String replaceAll(String regex,String replacement) //使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
String replaceFirst(String regex,String replacement) //使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
注意 :如果替换的字符不存在,返回的还是原字符串
5.切割
String[] split(String regex) // 根据给定正则表达式的匹配拆分此字符串。
String[] split(String regex,int limit) //根据匹配给定的正则表达式来拆分此字符串。
6.字串
获取字符串中的一部分
String substring(int beginIndex) // 返回一个新的字符串,它是此字符串的一个子字符串。
String substring(int beginIndex ,int endIndex) // 返回一个新字符串,它是此字符串的一个子字符串。
注意: substring(int beginIndex, int endIndex) //包含头不包含尾
str.substring(0,str.length()) //整个字符串
7.转换,去除空格:
将字符串转换成大写或小写
String toUpperCase() //使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
String toUpperCase(Locale locale) //使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
String toLowerCase() //使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
String toLowerCase(Locale locale) //使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
将字符串两端的空格全都去除
String trim() //返回字符串的副本,忽略前导空白和尾部空白。
8.比较
对两个字符串进行自然顺序的比较
int compareTo(String anotherString) // 按字典顺序比较两个字符串。
int compareToIgnoreCase(String str)//按字典顺序比较两个字符串,不考虑大小写。
---------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima