------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
基本信息
String类是final类型的不可变的。如果对String对象做任何改变,都会产生一个新的对象返回,引用指向新引用,原来引用指向的对象没改变。这一点和基本数据类型一样。
package testString;
public class StringDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="a";
s1="b";
}
}
疑问
String不是final的吗?不是不可变的吗?如果从控制台输出S1的内容我们发现S1的内容确实是变了。
我们知道任何一个字符串都是一个对象,"a"是一个对象,"b"也是一个对象,那么"a"对象改变了吗?
"a"的内存地址并没有改变,只不过s1的引用指向了另外一个String对象"b".
下面代码也是这个道理,俩个值相等,但绝对不是一个对象,new关键字就是new出一个新对象来。而
equals这个方法则是比较俩个字符串值相等的方法。
package testString;
public class StringDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="abc";
String s2=new String("abc");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
所以输出结果:
false
true
String类适用于描述字符串事物。
那么它就提供了多个方法对字符串进行操作。
常见的操作有哪些呢?
1.获取
1.1字符串中包含的字符数,也就是字符串的长度。
int length();获取长度的方法。
1.2根据位置获取字符串上某个字符。
char charAt(int index);返回指定索引处的char值。
1.3根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回ch在字符串中第一次出现的位置
int indexOf(String ch);返回ch在字符串中第一次出现的位置
int indexOf(int ch,int fromIndex);从fromIndex位置开始获取ch出现在字符串中的位置。
int indexOf(String ch,int fromIndex);从fromIndex位置开始获取ch出现在字符串中的位置。
2.判断
2.1字符串中是否包含某一个字串。
boolean contains(str);
特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1。表示该str不在字符串中存在。
所以,也可以用于对字符串的判断是否包含。
使用方法:
if(str.indexOf("aa")!=-1) 如果不等于负一,则表示存在。
而且该方法既可以判断,也可以获取出现的位置。
2.2字符串中是否有内容
boolean isEmpty();判断长度是否为0.
2.3字符串是否是以指定内容开头。
2.4字符串是以什么结尾。
2.5判断字符串的内容是否相等。
boolean equals(str);复写了object中的equals方法
2.6判断内容是否相同,忽略大小写。
boolean equalsIgnoreCase(String str);
3.转换
3.1将字符数组转换成字符串。
构造方法:String(char[])
String(char[],offset,count);将字符数组中的一部分转成字符串。
静态方法:
static String copyValueOf(char[] data);
static String copyValueOf(char[] data,int offset,int count);
3.2将字符串转换成字符数组。
char [] toCharArray();
3.3将字节数组转换成字符串。
String(byte[])
String(byte[],offset,count)
3.4将字符串转换成字节数组。
bytep[] getBytes();
3.5将基本数据类型转换成字符串。
static String valueOf(int i);
static String valueOf(doubled);
4。替换
String replace(oldchar,newchar); 如果要替换的字符不存在,则返回原来的字符串。
5.切割
String [ ] split(regex);
6.获取字符串中的一部分
String substring(begin);
String substring(begin,end);
7.转换,去除空格,比较。
7.1将字符串转换成大写或者小写。
String toUpperCase();//转换成大写
String toLowerCase();//转换成小写
7.2将字符串俩端的多个空格去除。
String trim();
7.3对俩个字符串进行自然顺序的比较。
int compareTo(String);
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------