廢話不多說, 直接進正題, 快上車!
String 字符串
這個類是開發(fā)中接觸最多的幾個類之一, 你基本每天, 甚至每個小時都會跟他打打交道, 而JAVA中他的作用就是程序中的所有字符串字面值(如 "qwer" )都作為此類的實例實現(xiàn)。
首先我們要注意的是:
- String是常量 ! ! ! ! 是常量! ! ! ! 常量! ! ! !
- 它們的值在創(chuàng)建之后不能更改 ! ! ! 不能改啊 ! ! ! !
請把上面這兩句話用咆哮體嵌入到腦中.
把這兩句話記到腦子里之后, 你可以創(chuàng)建一個String了, 但是要注意, 字符串緩沖區(qū)支持可變的字符串.因為 String 對象是不可變的,所以可以共享.
比如說:
String str = "abc";
等效于
char data[] = {'a', 'b', 'c'};
String str = new String(data);
字符串有很多的構(gòu)造函數(shù)和方法可以使用, 而在JAVA中甚至你在打印方法中用一個簡簡單單的"+" 就可以達成拼接的效果了, 十分的簡便易用.而介紹String方法需要大量的篇幅, 在這里我只介紹幾個比較常用的.
- 這個方法的用處是將指定字符串連接到此字符串的結(jié)尾
concat(String str)
return String;
- 將此字符串與指定的對象比較
equals(Object object)
return boolean;
- 返回此字符串的長度
length()
return int;
- 根據(jù)給定的正則表達式來拆分字符串
spilt(String regex)
return String[];
- 返回N種參數(shù)的字符串表達形式
valueof(boolean b | char c | char[] data | char[] data, int offset, int count | double d | float f | int i | long l | Object object)
return static String;
如果其他需求請查看官方API, 那里很全的.
StringBuffer
這個東西和String最大的區(qū)別就是, 他是一個線程安全的可變字符序列
而對于它的內(nèi)存方面也有個要注意的點: 其初始容量為 16 個字符, 這句話的意思不是他只能存 16 個字符的東西, 只要字符串緩沖區(qū)所包含的字符序列的長度沒有超出此容量,就無需分配新的內(nèi)部緩沖區(qū)數(shù)組。如果內(nèi)部緩沖區(qū)溢出,則此容量自動增大.
以前都是用這個東西, 因為他安全還可變, 但是開發(fā)者發(fā)現(xiàn)這個東西太慢了, 因為它線程安全的鍋, 對于他簡直又愛又恨. 然后偉大的JAVA又推出了下面的一個類.
StringBuilder
他同樣是一個可變的字符序列。此類提供一個與 StringBuffer 兼容的 API,但不保證同步。該類被設(shè)計用作 StringBuffer 的一個簡易替換,用在字符串緩沖區(qū)被單個線程使用的時候(這種情況很普遍)。
如果可能,建議優(yōu)先采用該類,因為在大多數(shù)實現(xiàn)中,它比 StringBuffer 要快。
在 StringBuilder 上的主要操作是 append 和 insert 方法,可重載這些方法,以接受任意類型的數(shù)據(jù)。每個方法都能有效地將給定的數(shù)據(jù)轉(zhuǎn)換成字符串,然后將該字符串的字符追加或插入到字符串生成器中。append 方法始終將這些字符添加到生成器的末端;而 insert 方法則在指定的點添加字符
- 追加到字符串末尾
append(N種參數(shù))
return StringBuilder;
- 插入到字符串中
insert(N種參數(shù))
return StringBuilder;