Java Notes: String and StringBuilder

来源:互联网 发布:php简单企业网站源码 编辑:程序博客网 时间:2024/06/03 11:18

两者最大的区别是:immutable和mutable. 


调用String的方法返回的永远是一个新的String。调用该方法的对象是不会改变的。但是StringBuilder的对象调用方法可以改变StringBuilder本身。


利用StringBuilder搭建好String后,可以利用new String(StringBuilder strb)来创建一个最终的String.


下面罗列String常用的方法(多用多记):


Sting的构造器:String (char[] val); String (String str); String(StringBuffer, buffer); String(StringBuilder builder); 当然,还有一个非常实用的:String(char[] val, int offset, int count); 设置偏移量和长度之后可以直接截取char array的一部分作为字符串。


char charAt(int index);


String是实现了Comparable的,所以里面有int compareTo(String str); 字典比较


int compareToIgnoreCase(String str)

boolean startWith(String prefix) or boolean startWith(String prefix, int offset);

boolean endWith(String suffix)


equals and equalsIgnoreCase(String str);


对比String在构造器当中可以用String(char[] array, int offset, int length)来截取字符数组的一部分来创建String,而String类型对象除了可以使用toCharArray()转换为字符数组外,还能使用getChars(int begin, int end, char[] dst, int dstBegin)来获取对应的一部分String. 


搜索字符时最常用的:


indexOf(char target, int fromIndex) 和 indexOf(char target)

indexOf(String str, int fromIndex) 和 indexOf(String str)

以及对应的

LastIndexOf(char target, int fromIndex) 和 LastIndexOf(char target)

LastIndexOf(String str, int fromIndex) 和 LastIndexOf(String str)


如何判断是否有重复字符?


看看indexOf和lastIndexOf返回的值是否一样。


替代该字符串中所有出现的target字符串且返回替代后的String?


String res = replaceAll(String target, String replaceStr);


替代该字符串中第一个出现的target字符串且返回替代后的String?


String res = replaceFirst(String target, String replaceStr);


去子字符串:


String substring(int begin) or String substring(int begin, int end); //前闭后开


去掉开头和结尾空格


trim() -- 返回一个去掉开头和结尾空格的String. 


所有的字符变为大写或者小写?


toLowerCase() and toUpperCase


将其它的基本类型和字符数组变为String: 


String.valueOf(float tmp) and etc. 


下面罗列StringBuilder常用的方法(多用多记):


下面重点来了,StringBuilder是没有用char array作为参数的带参构造器的。Java的quiz就考过这样的题了。


有以下的带参构造器:StringBuilder(int capacity)和StringBuilder(String str)。


常用的几个方法:


所有的基本类型 + String 和 char[] 的append. 对于char[]还有:append(char[] array, int offset, int len);


还有delete(int start, int end) 和 deleteCharAt(int index);


还有insert (int offset, primitive var); 所有的基本类型 + String 和 char[],对于char[] 同样有:int offset, int len


还有setChar(int index, char ch);


同样的,和String有一样的如下方法:replace(int start, int end, String str), indexOf, lastIndexOf, charAt, getChars. 



0 0