String的相關類和方法
String的相關類和方法
一、String,StringBuilder,StringBuffer三者的區別
這三個類之間的區別主要是在兩個方面,即運行速度和線程安全這兩方面
1、運行速度:StringBuilder > StringBuffer > String
String為字符串常量,而StringBuilder和StringBuffer均為字符串變量,即String對象一旦創建之後該對象是不可更改的,每次變化都需要new一個對象,但後兩者的對象是變量,是可以更改的,每次變化是同一個對象。
2、線程安全上,StringBuilder是線程不安全的,而StringBuffer是線程安全的
StringBuffer中很多方法可以帶有synchronized關鍵字,所以可以保證線程是安全的,但StringBuilder的方法則沒有該關鍵字,所以不能保證線程安全,有可能會出現一些錯誤的操作。但是在單線程的情況下,還是建議使用速度比較快的StringBuilder。
3、使用情況總結
String:適用於少量的字符串操作的情況,字符串內容基本不會改變的情況
StringBuilder:適用於單線程,字符緩沖區進行大量操作,字符串內容多次改變的情況
StringBuffer:適用多線程,字符緩沖區進行大量操作,字符串內容多次改變的情況
二、StringTokenizer:字符串分隔解析類型
1、構造函數
StringTokenizer(String str) :構造一個用來解析str的StringTokenizer對象。java默認的分隔符是“空格”、“制表符(‘\t’)”、“換行符(‘\n’)”、“回車符(‘\r’)”。
StringTokenizer(String str, String delim) :構造一個用來解析str的StringTokenizer對象,並提供一個指定的分隔符。
StringTokenizer(String str, String delim, boolean returnDelims) :構造一個用來解析str的StringTokenizer對象,並提供一個指定的分隔符,同時,指定是否返回分隔符(默認false)。
2、方法(均為public)
int countTokens() :返回nextToken方法被調用的次數。相當於數組長度。
boolean hasMoreTokens() :返回是否還有分隔符。
boolean hasMoreElements() :結果同上。
String nextToken() :返回從當前位置到下一個分隔符的字符串。
Object nextElement() :結果同上。
String nextToken(String delim) :與上個類似,以指定的分隔符返回結果。
String的相關類和方法