常々Java文字列の進級について話しています(必ず編を見ます)
前言
最もよく使われている文字列操作の種類は三つあります。それぞれString、StringBuider、StrigBufferです。この三つの種類を詳しく説明します。
String
Stringクラスは文字列を表しています。これは最も基本的な文字列の種類です。これも比較的多い種類を使っています。ここでは詳しく紹介しません。
作成
new String(String str)
new String(StrigBuider str)
new String(StringBuffer str)
new String(byte[]bys,String charsetName)は、指定された文字セットを用いて指定されたbyteサブアレイを復号することにより、新たなStringを作成します。
一般的な方法
str charAt(int index)は、指定された索引の文字を返します。
String concat(String str)は指定された文字列strを文字列の最後に接続し、接続成功後の文字を返すため、効果があるということを受け入れる必要があります。
bollan containsはこの文字列が指定されたchar値シーケンスを含むかどうかを判断します。ここのCharSequenceはインタフェースです。直接にそのサブクラスをパラメータとして使用できます。
static String copyValueOfは文字配列を文字列に変えて返します。
static String copyValueOf(char[c],int off,int count)は切り取りの文字配列を文字列にして返します。offは切り取り開始の下付き文字で、countは切り取りの個数です。
bootlean endWithは文字列がsで終わるかどうかを判定します。
bollan equals(Object o)は比較に使います。
int indexOf(char c)は文字列の中で初めて現れた索引を返します。
int indexOf(char c,int from Index)指定された索引から検索を開始し、最初に出た索引を検索します。
int indexOfは、指定されたサブ文字列のこの文字列の最初の出現におけるインデックスを返します。
int indexOf(String str,int from Index)は、指定されたサブ文字列のこの文字列の最初の出現におけるインデックスを返し、指定された索引から開始します。
bollan isempty()
int length()
bootlean matches(String regex)が正規表現にマッチしているかどうか
trim()は文字列のコピーを返し、先頭の空白と末尾の空白を無視します。
String substringは新しい文字列を返します。この文字列のサブ文字列です。
String substringは新しい文字列を返します。この文字列のサブ文字列です。
String toUpperCase()は、デフォルトの言語環境のルールを使用して、このStringのすべての文字を大文字に変換します。
String[]split(String regex)は、与えられた正規表現のマッチングに基づいてこの文字列を分割します。
String[]splitは、与えられた正規表現にマッチすることによって、この文字列を分割します。
char[]toChararAray()はこの文字列を新しい文字配列に変換します。
byte[]getBytes(Charet charst)は、所与のcharsetを用いてこのStringをbyteシーケンスに符号化し、結果を新しいbyte配列に格納する。
注意
上のnew String(byte[]bys、String charsetName)という構造方法が重要で、文字列の符号化セット(byte[]getBytes(Charrset charset))と組み合わせて使うことができます。以下の例を見ます。コードは以下の通りです。
スレッドの安全な可変文字列。Stringに似た文字列バッファがありますが、変更はできません。もちろん一番重要なのはスレッドの安全です。ソースから見てもいいです。いくつかの操作に対してスレッド制御ブロックを使って同期を実現しています。マルチスレッドの下での使用に適しています。ソースコードは以下の通りです。
new StrigBurer(StrigBuider str)
new String Buffer(String str)
よく使う方法
StringBuffer apped(str)は、指定されたタイプのstrをこの文字列の後ろに追加します(String、char、char[]、int、double、float、long、StringBuffer、StrigBuider)
StringBuffer insert(int offst,str)はこのシーケンスに指定型のstrを挿入します。Offstは挿入開始位置のインデックスを表します。タイプはString,char,int,double,flot,StringBuffer,StrigBuiderがあります。
String delete(int from Index,int endIndex)は、このシーケンスの文字列を削除し、新しいバッファ文字列を返します。
StringBuffer reverse()反転文字列
String substringは、現在含まれている文字のサブシーケンスを含む新たなStringを返す。
String substring(int start,int end)は、現在含まれている文字のサブシーケンスを含む新しいStringを返す。
StringBuffer deleteCharAtは、このシーケンスの指定された位置のcharを除去します。
int length()長さ
String toString()は、このシーケンスにおけるデータの文字列表示形式を返します。
StringBuider
このクラスを優先的に採用することを提案します。ほとんどの実装では、SteringBufferよりも速いです。しかし、このクラスはスレッドではなく、単スレッドのみに適しています。マルチスレッドを使うなら、StringBufferを推奨します。もちろんこれを使ってもいいですが、自分で同期を実現する必要があります。
作成方法
new StringBuider(String str)
一般的な方法
このような一般的な方法はStringBufferと同じです。ここではいちいち列挙しなくてもいいです。上記を参照してください。
以上のこの古い話はJava文字列の進級(必見編)ということです。小編は皆さんに提供した内容を全部共有しています。参考にしてほしいです。どうぞよろしくお願いします。
最もよく使われている文字列操作の種類は三つあります。それぞれString、StringBuider、StrigBufferです。この三つの種類を詳しく説明します。
String
Stringクラスは文字列を表しています。これは最も基本的な文字列の種類です。これも比較的多い種類を使っています。ここでは詳しく紹介しません。
作成
new String(String str)
new String(StrigBuider str)
new String(StringBuffer str)
new String(byte[]bys,String charsetName)は、指定された文字セットを用いて指定されたbyteサブアレイを復号することにより、新たなStringを作成します。
一般的な方法
str charAt(int index)は、指定された索引の文字を返します。
String concat(String str)は指定された文字列strを文字列の最後に接続し、接続成功後の文字を返すため、効果があるということを受け入れる必要があります。
bollan containsはこの文字列が指定されたchar値シーケンスを含むかどうかを判断します。ここのCharSequenceはインタフェースです。直接にそのサブクラスをパラメータとして使用できます。
static String copyValueOfは文字配列を文字列に変えて返します。
static String copyValueOf(char[c],int off,int count)は切り取りの文字配列を文字列にして返します。offは切り取り開始の下付き文字で、countは切り取りの個数です。
bootlean endWithは文字列がsで終わるかどうかを判定します。
bollan equals(Object o)は比較に使います。
int indexOf(char c)は文字列の中で初めて現れた索引を返します。
int indexOf(char c,int from Index)指定された索引から検索を開始し、最初に出た索引を検索します。
int indexOfは、指定されたサブ文字列のこの文字列の最初の出現におけるインデックスを返します。
int indexOf(String str,int from Index)は、指定されたサブ文字列のこの文字列の最初の出現におけるインデックスを返し、指定された索引から開始します。
bollan isempty()
int length()
bootlean matches(String regex)が正規表現にマッチしているかどうか
trim()は文字列のコピーを返し、先頭の空白と末尾の空白を無視します。
String substringは新しい文字列を返します。この文字列のサブ文字列です。
String substringは新しい文字列を返します。この文字列のサブ文字列です。
String toUpperCase()は、デフォルトの言語環境のルールを使用して、このStringのすべての文字を大文字に変換します。
String[]split(String regex)は、与えられた正規表現のマッチングに基づいてこの文字列を分割します。
String[]splitは、与えられた正規表現にマッチすることによって、この文字列を分割します。
char[]toChararAray()はこの文字列を新しい文字配列に変換します。
byte[]getBytes(Charet charst)は、所与のcharsetを用いてこのStringをbyteシーケンスに符号化し、結果を新しいbyte配列に格納する。
注意
上のnew String(byte[]bys、String charsetName)という構造方法が重要で、文字列の符号化セット(byte[]getBytes(Charrset charset))と組み合わせて使うことができます。以下の例を見ます。コードは以下の通りです。
/*
* InputStreamReader FileInputStream , ,
*/
/*
* ( eclipse utf-8
* GBK a.txt , a.txt utf-8
* GBK , GBK , eclipse utf-8 ,
* new String(byte[] bys,String
* charsetName) byte utf-8 ,
*/
// GBK a.txt
File file = new File("src/a.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
String str = " ";
byte[] by = str.getBytes("GBK"); // GBK
fileOutputStream.write(by);
fileOutputStream.close();
// a.txt
FileInputStream fileInputStream = new FileInputStream(file);
int len;
byte[] bys = new byte[4];
while ((len = fileInputStream.read(bys)) != -1) {
System.out.println(new String(bys, "GBK"));
}
fileInputStream.close();
StringBufferスレッドの安全な可変文字列。Stringに似た文字列バッファがありますが、変更はできません。もちろん一番重要なのはスレッドの安全です。ソースから見てもいいです。いくつかの操作に対してスレッド制御ブロックを使って同期を実現しています。マルチスレッドの下での使用に適しています。ソースコードは以下の通りです。
public synchronized StringBuffer append(Object obj) {
super.append(String.valueOf(obj));
return this;
}
public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}
public synchronized StringBuffer delete(int start, int end) {
super.delete(start, end);
return this;
}
/**
* @throws StringIndexOutOfBoundsException {@inheritDoc}
* @since 1.2
*/
public synchronized StringBuffer deleteCharAt(int index) {
super.deleteCharAt(index);
return this;
}
作成new StrigBurer(StrigBuider str)
new String Buffer(String str)
よく使う方法
StringBuffer apped(str)は、指定されたタイプのstrをこの文字列の後ろに追加します(String、char、char[]、int、double、float、long、StringBuffer、StrigBuider)
StringBuffer insert(int offst,str)はこのシーケンスに指定型のstrを挿入します。Offstは挿入開始位置のインデックスを表します。タイプはString,char,int,double,flot,StringBuffer,StrigBuiderがあります。
String delete(int from Index,int endIndex)は、このシーケンスの文字列を削除し、新しいバッファ文字列を返します。
StringBuffer reverse()反転文字列
String substringは、現在含まれている文字のサブシーケンスを含む新たなStringを返す。
String substring(int start,int end)は、現在含まれている文字のサブシーケンスを含む新しいStringを返す。
StringBuffer deleteCharAtは、このシーケンスの指定された位置のcharを除去します。
int length()長さ
String toString()は、このシーケンスにおけるデータの文字列表示形式を返します。
StringBuider
このクラスを優先的に採用することを提案します。ほとんどの実装では、SteringBufferよりも速いです。しかし、このクラスはスレッドではなく、単スレッドのみに適しています。マルチスレッドを使うなら、StringBufferを推奨します。もちろんこれを使ってもいいですが、自分で同期を実現する必要があります。
作成方法
new StringBuider(String str)
一般的な方法
このような一般的な方法はStringBufferと同じです。ここではいちいち列挙しなくてもいいです。上記を参照してください。
以上のこの古い話はJava文字列の進級(必見編)ということです。小編は皆さんに提供した内容を全部共有しています。参考にしてほしいです。どうぞよろしくお願いします。