首页 > 编程 > Java > 正文

Java Notes: String and StringBuilder

2019-11-06 07:51:45
字体:
来源:转载
供稿:网友

两者最大的区别是: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. 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表