String类
1.是什么
String类是java.lang包下的一个类,是用来封装对字符串(java中的字符串都是对象)的各种操作。在内存中有一个共同维护的字符串(对象)池。
2.调用函数
2.1 构造方法
-
public String(char[] value)
char[] s = { 'h','e','l','l','o'}; System.out.println(new String(s)); //将字符数组转化为字符串
-
public String(char[] value, int offset, int court)
char[] s = { 'h','e','l','l','o'}; System.out.println(new String(s,0,2)); //将指定范围内的字符数组变为字符串 //结果:he (左[闭右)开)
2.2 普通方法
-
public char charAt (int index)
String s1 = "hello world"; System.out.println(s1.charAt(4)); //结果:o //返回指定索引处的字符内容
-
public char[] toCharArray ()
String s1 = "hello world"; char[] s2 = s1.toCharArray();//将字符串转化为字符数组for (int i = 0; i < s2.length; i++) { System.out.print(s2[i]);}
-
public boolean contains (String s)
String s1 = "hello world"; System.out.println(s1.contains("llo")); //结果:true //判断一个子字符串是否存在
-
public int indexOf (String s)
String s1 = "hello world"; System.out.println(s1.indexOf("l")); //结果:2 //由前向后查找子字符串的位置,没找到返回-1
-
public String replaceXXX (String regex, String replacement)
String s1 = "hello world"; System.out.println(s.replaceAll("l", "a"));//全部替换 //结果:heaao worad System.out.println(s.replaceFirst("l", "a"));//替换首个 //结果:healo world
-
public String substring (int beginIndex, int endIndex)
String s1 = "hello world"; System.out.println(s1.substring(6,8)); //结果:wo //截取字符串指定范围[x,y)的的字符,并返回
-
public String[] split (String regex)
String s1 = "hello world"; String[] split = s1.split("l");for (int i = 0; i < split.length; i++) { System.out.println(split[i]);} //结果:hello // world //按照指定的字符串进行全拆分
-
length
求字符串长度。
-
toUpperCase & toLowerCase
将字符串转化为大写字母、小写字母。
3. String & StringBuilder & StringBuffer的区别
String的值是不变的,每次对String字符串的操作都是在创建新的对象
为了节约空间,更好的操作字符串,引入了StringBuilder和StringBuffer。与String 类不同的是,StringBuilder和 StringBuffer 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder相比于StringBuffer有速度优势,但StringBuffer更线程安全。
- String 不可变字符序列。
- StringBuilder 可变字符序列、效率高、线程不安全。
- StringBuffer 可变字符窜序列、效率低、线程安全。
4. StringBuilder和StringBuffer常用函数
StringBuilder 和 StringBuffer 方法和功能完全一致,故只需介绍一个。
-
创建
StringBuilder sb = new StringBuilder()//括号内可以加要转化的String字符串
-
添加
StringBuilder sb = new StringBuilder(); sb.append("hello"); sb.append('w').append('o').append('r').append('l').append('d');
-
插入
StringBuilder sb = new StringBuilder("hello"); sb.insert(3,"lll"); System.out.println(sb); //结果:helllllo
-
删除( x, y ]
- delete(Start,end): 删除指定范围的字符内容
- deleteCharAt(index): 删除指定位置的字符
- delete(0,sb.length): 清空
-
获取(与String类一致)
- charAt(index)
- indexOf(char)
-
修改
- replace(start, end, string)
- setCharAr(index, char): 将index位置的字符变为新的char
-
反转
- reverse()