在Java中用于描述字符串的类就是String。
Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。
字符串最大的一个特点就是:字符串是常量,它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
public class sss { public static void main(String[] args) { // TODO Auto-generated method stub String s1 = "abc"; s1 = "sss"; System.out.println(s1); } }
打印结果却是:sss
但是我们要明白的是,变化的不是abc 变化的是s1所指向的对象。
public class sss { 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)); } }
String类复写了Object类中的equals方法。该方法用于判断字符串内容是否相同。
S1和s2有什么区别?
s1在内存中有一个对象,s2在内存中有两个对象
public class sss { public static void main(String[] args) { // TODO Auto-generated method stub String s1 = "abc"; String s2 = new String("abc"); String s3 = "abc"; System.out.println(s1==s2); System.out.println(s1==s3); } }
打印结果:
False
True
S3在初始化的时候发现字符串“abc”已经在常量池中存在就不会再进行创建,所以s1和s3指向的是同一个对象。
字符串常见的方法:
1.获取
a) 字符串中包含的字符数(长度) int length ()
b) 根据位置获取位置上的某个字符 char charAt(int index)
c) 根据字符获取该字符的位置
d)
int indexOf (char ch) 返回的是ch在字符串中第一次出现的位置
int indexOf (String ch):返回的是ch在字符串中第一次出现的位置
int indexOf (int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中的位置
int indexOf (String ch,int fromIndex):从fromIndex位置开始,获取ch在字符串中出现的位置
反向索引一个字符出现的位置。int indexOf (int ch)
2.判断
a) 字符串中是否包含某一个子串 boolean contains (str) 特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1,则表示该str不在字符串中存在。
b) 字符串中是否有内容 boolean isEmpty ()
c) 字符串是否以指定内容开头 boolean startsWith (str)
d) 字符串是否以指定内容结束 boolean endsWith (str)
e) 判断字符串的内容是否相同 equals()
f) 判断内容是否相同并忽略大小写 equalsIgnoreCase()
3.转换
a) 将字符数组转换成字符串
构造方法:
String(char[] )
String (char[] ,offset ,count)将字符数组中的一部分转换为字符串
静态方法:
Static String copyValueOf (char[])
Static String copyValueOf (char[] data,int offset,int count)
Static String ValueOf (char[])
b) 将字符串转换成字符数组
Char[] toCharArray ()
c) 将字节数组转换成字符串
String(byte[] )
String (byte[] ,offset ,count)
d) 将字符串转换成字节数组
Byte[] getBytes()
e) 将基本数据类型转成字符串
Static String ValueOf (int)
Static String ValueOf (double)
字符串和字节数组在转换过程中是可以指定编码表的。
4.替换
String replace ( oldchar ,newchar)如果要替换的不存在,返回的是原串
5.切割
String split(regex)
6.子串,获取字符串中的一部分
String substring(begin)从指定位置开始到结尾,如果角标不存在会出现角标越界异常
String substring(begin,end)
7.转换 去除空格 比较
a) 将字符串转成大写或者小写
Sting toUpperCase()
Strign toLowerCase()
b) 将字符串两端的多个空格去除
String trim ()
c) 对两个字符串进行自然顺序的比较
int compareTo (string)
原文:http://blog.csdn.net/u013476556/article/details/44785127