String 属于java.lang包,java的核心包。不需要import
String 类代表字符串。
java程序中所有的字符串(如“abc”)都作为此类的实例实现。
它的特点是:
字符串是常量,它们的值一旦被初始化就不会改变。字符串缓冲区支持可变的字符串。因为String对象时不可变的,所以是可共享的。
String str = "abc";
等效于
char data[] = {'a','b','c'};
String str = new String(data);
String a = "abc";//创建一个字符串对象在常量池中
String s1 = new String("abc");//创建一个字符串对象在堆内存中
System.out.println(a == s1);//false
System.out.println(a.equals(s1));//true
String中的方法:
1.获取:
1.1 获取字符串的长度 int length();
1.2根据位置获取字符 char charAt(int index);
1.3根据字符获取位置
int indexOf(int ch);
int indexOf(int ch,int formIndex);
int indexOf(String str);
int indexOf(String str, int formIndex);
int lastIndexOf(int ch);
int lastIndexOf(int ch,int formIndex);
1.4获取字符串中一部分字符串,也叫子串。
String subString(int beginIndex, int endIndex);
String subString(int beginIndex);
2 转换
2.1将字符串变成字符串数组(字符串的切割)
String[] split (String regex);涉及到正则表达式
2.2将字符串变成字符数组
char[] toCharArray();
2.3将字符串编程字节数组
byte[] getBytes();
2.4改变字符串的内容
String replace(char oldChar, char newChar);
2.5使字符串变大小写
String toUpperCase();
String toLowerCase();
2.6去掉字符串两边的空格
String trim();
2.7将字符串连接。
String contact(String);
3判断
3.1两个字符串内容是否相同?
boolean equals(Object obj);
boolean equalsIgnoreCase(String str);
3.2字符串中是否包含某个字符串?
boolean contains(String str);
等价于 indexOf(String str);
3.3字符串是否以指定字符串开头,是否以指定字符串结尾
boolean startsWith(String str);
boolean endsWith(String str);
4 比较
int compareTo(String anotherString)
扩展
StringBuffer ,StringBuilder
StringBuffer是线程安全的可变字符序列。一个类似于String的字符串缓冲区。从JDK5开始,为该类补充了一个单个线程使用的等价类,即StringBuilder,与该类相比,通常应优先使用StringBuilder类,因为它支持所有相同的操作。但由于它不执行同步,所以速度更快。
1.添加:
StringBuffer append(Objct obj);
StringBuffer insert(index,data);
2.删除
StringBuffer delete(start,end);
StringBuffer deleteCharAt(int index);
3.查找
char charAt(index);
int indexOf(String);
4.修改
StringBuffer replace(start,end,String);
void setCharAt(index,char);