String类的介绍
- String类是个特殊的对象,字符串一但初始化就不可改变
区分
String s = "abc";
String s1 = new String("abc");
第一句话,创建一个对象,在字符串缓冲区当中。 第二句话创建两个对象,在堆中
String s = "abc";
String s1 = "abc";
S.o.p(s == s1); true
先到字符串常量池找,看看有没有abc这个字符串,如果有则直接指,没有则创建个对象。所以 s与s1指向同一个对象
String 把hashcode和equals方法覆盖了
String的方法
构造方法
一般的构造方法就是无参或者字符串参,这里介绍两个特殊的构造方法,一个是通过字节数组,另一个是字符数组
- String(char[] value)
- String(byte[] value)
方法
获取方法
获取字符串字符的个数(长度)
- int length();
根据位置获取字符
- char charAt(int index)
根据字符获取在字符串中第一次出现的位置
- int indexOf(int ch)
- int indexOf(int ch,int fromIndex)
处理方法
- String[] split(String regex) 涉及到正则表达式 将字符串变成字符串数组(字符串的切割)
- char[] toCharArray(); 将字符串变成字符数组
- byte[] getBytes(); 将字符串变成字节数组
- 将字符串中的字母转成大小写
String toUpperCase();
String toLowerCase(); - 将字符串中的内容进行替换
String replace(char oldch , char newch);
String replace(String s1 , String s2);
判断方法
- 两个字符串内容是否相同
boolean equals(Object obj);
boolean equalsIgnoreCase(String str); 忽略字符串的大小比较内容 - 字符串中是否包含指定字符串
boolean contains(String s1); - 字符串是否以指定字符串开头,是否以指定字符串结尾
boolean startsWith(String);
boolean endsWith(String);