1. 程式人生 > >String的相關類和方法

String的相關類和方法

線程安全 叠代 new 當前位置 return nbsp 下一個 解析 緩沖

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:字符串分隔解析類型

(java.util包。使用類似iterator叠代器)

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的相關類和方法