1, String类一旦被初始化就不会被改变。
字符串不不能被改变,编译可以让字符串之间共享。编译器将各种字符串存放在公共的存储池子中。字符串变量指向存储池中相应的位置。实际上只有字符串常量。而+(除了常量相加)和其它方法操作的不是共享的。
String s1 ="abc" ,String s2 = "abc" (他们存在公共池中),String s3 = new String ("abc"),存在堆中; 则s1== s2; s1! = s3;
2, 字符串常用功能:
1,获取:
1.1 获取字符串中字符的个数(长度).
int length();
1.2 根据位置获取字符。
char charAt(int index);
1.3 根据字符获取在字符串中的第一次出现的位置.
int indexOf(int ch)
int indexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
int indexOf(String str);
int indexOf(String str,int fromIndex);
根据字符串获取在字符串中的第一次出现的位置.
int lastIndexOf(int ch)
int lastIndexOf(int ch,int fromIndex):从指定位置进行ch的查找第一次出现位置
int lastIndexOf(String str);
int lastIndexOf(String str,int fromIndex);
1.4 获取字符串中一部分字符串。也叫子串.
String substring(int beginIndex, int endIndex)//包含begin 不包含end 。
String substring(int beginIndex);
2,转换。
2.1 将字符串变成字符串数组(字符串的切割)
String[] split(String regex):涉及到正则表达式.
2.2 将字符串变成字符数组。
char[] toCharArray();
2.3 将字符串变成字节数组。
byte[] getBytes();
2.4 将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
2.5 将字符串中的内容进行替换
String replace(char oldch,char newch);
String replace(String s1,String s2);
2.6 将字符串两端的空格去除。
String trim();
2.7 将字符串进行连接 。
String concat(string);
3,判断
3.1 两个字符串内容是否相同啊?
boolean equals(Object obj);
boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。
3.2 字符串中是否包含指定字符串?
boolean contains(string str);
3.3 字符串是否以指定字符串开头。是否以指定字符串结尾。
boolean startsWith(string);
boolean endsWith(string);
4,比较。
int compare (String s) 返回-1 0 1
5, 有时候需要较短的字符串构建字符串,采用字符串连接效率太低,每次连接字符串都会构建新的String对象。既耗时又浪费空间。
采用StringBulider类就可以避免类似问题的发生。StringBuffer是线程安全类,效率会降低。
主要方法:
1,添加:
StringBuffer append(data);
StringBuffer insert(index,data);
2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
增删改查 C(create)U(update)R(read)D(delete)
reverse()反向遍历 triToSize()改变大小。
6, 包装类和String之间转化
自动装箱:自动拆箱
注意:自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间。
基本类型--->字符串
1,基本类型数值+""
2,用String类中的静态方法valueOf(基本类型数值);
3,用Integer的静态方法valueO(基本类型数值);
字符串--->基本类型
1,使用包装类中的静态方法 xxx parseXxx("xxx类型的字符串");
int parseInt("intstring");
long parseLong("longstring");
boolean parseBoolean("booleanstring");
只有Character没有parse方法
2,如果字符串被Integer进行对象的封装。
可使用另一个非静态的方法,intValue();
将一个Integer对象转成基本数据类型值。
十进制-->其他进制。
toBinaryString
toOctalString
toHexString
其他进制-->十进制。
parseInt("string",radix)
时间: 2024-10-14 13:30:34