关于String类的小结

时间:2019-11-10 13:17:40   收藏:0   阅读:76

String类:不可修改(用final修饰)

(1)构造方法

public String()
public String(byte[] bytes):把字节数组转成字符串
public String(byte[] bytes,int index,int length):把字节数组的一部份转成字符串
public String(char[] value,int index,int count):把字符数组的一部份转成字符串
public String(String original):初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。

(2)实例方法

  1)判断功能

public boolean equals(Object anObject)  判断字符串是否一样
public boolean equalsIgnoreCase(String anotherString) 判断字符串是否一样,忽略大小写
public boolean contains(CharSequence s) 判断字符串是否包含哪字符串,CharSequence是一个接口,String类实现了该接口,故可以传入Sting类型的参数
public boolean startsWith(String prefix) 判断字符串是否以什么开头
public boolean endsWith(String suffix) 判断字符串是否以什么结尾
public boolean isEmpty() 判断字符串是否为空字符串

  2)获取功能

int length():获取字符串的长度
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):获取指定字符在此字符串第一次出现处的索引
int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引
int indexOf(int ch,int fromIndex):返回指定字符在此字符串中指定位置后第一次出现处的索引
int indexOf(String str,int fromIndex):返回指定字符串在此字符串中指定位置后第一次出现处的索引
int lastIndexOf() 最后出现的位置
String substring(int start):从指定位置开始截取字符串,默认到未尾
String substring(int start,int end):从指定位置开始到指定位置结束截取字符图

  3)转换功能

byte[] getBytes():把字符串转换为字节数组
char[] toCharArray():把字符串转换为字符数组
static String valueOf(char[] chs):把字符数组转成字符串
static String valueOf(int i):把int类型的数据转成字符串
注意:String类的valueOf方法可以把任意类型的数据转成字符串
String toLowerCase():把字符串转成小写
String toUpperCase():把字符串转成大写
String concat(String str):把字符串拼接,且只能拼接字符串。+方式拼接字符串时,可以是任意类型

  4)其他

public String replace(char oldChar, char newChar)//替换字符
public String replace(CharSequence target, CharSequence replacement) //替换字符串
String trim();//去除前后空格
public int compareTo(String anotherString) //比较,根据ASCII码表进行比较
public int compareToIgnoreCase(String str) //比较

关于compareTo()方法:逐字符进行作差,当差为0时比较下个字符知道比较结束。

String s1 = "abc";
String s2 = "ABC";
int b = s1.compareTo(s2);
System.out.println(b); //32 ==> ‘a‘-‘A‘ ==> 97-65=32
public int compareTo(String anotherString) {
        int len1 = value.length;
        int len2 = anotherString.value.length;
        int lim = Math.min(len1, len2);
        char v1[] = value;
        char v2[] = anotherString.value;

        int k = 0;
        while (k < lim) {
            char c1 = v1[k];
            char c2 = v2[k];
            if (c1 != c2) {
                return c1 - c2;
            }
            k++;
        }
        return len1 - len2;
    }

StringBuffer类:可以修改,线程安全,父类是AbstractStringBuilder。

StringBuffer类内部有个字符缓冲数组,实际上操作的也是这个数组。而String类也有个字符数组,但该数组用final修饰,并且在构造方法中进行了初始化,故无法修改。

(1)构造方法

public StringBuffer() :空参构造方法,默认容量为16
public StringBuffer(int capacity) :指定容量
public StringBuffer(String str) :按照给定的字符串来初始化字符数组

(2)添加方法

public synchronized StringBuffer append
public synchronized StringBuffer insert

(3)删除方法

deleteCharAt(int index) 删除指定索引的字符
delete(int start,int end): 删除开始到结束位置的字符

(4)反转方法

public synchronized StringBuffer reverse()

(5)截取功能,返回值是String

public String substring(int start): 从指定位置截取到末尾
public String substring(int start,int end): 截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

(6)String和StringBuffer相互转换

String转StringBuffer:
1)构造方法 new StringBuffer(String str)
2)利用StringBuffer的append方法

StringBuffer转String:
1)String类的构造方法 new String(StringBuffer s)
2)StringBuffer的toString方法
3)StringBuffer的substring方法
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!