关于String类的小结
Posted liualex1109
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于String类的小结相关的知识,希望对你有一定的参考价值。
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方法
以上是关于关于String类的小结的主要内容,如果未能解决你的问题,请参考以下文章