ディレクトリ
文字列を作成します
- 引用符で囲まれた文字列定数
- 列A; =「学生」。
- それらのアドレスは(== b)は同じです、それはスタック内の定数が存在するかどうかのために、プログラムが見えるだろう、新しい変数の代わりに、再ヒープに割り当てられた直接アドレスがあり、別の変数に割り当てられた同じ文字列定数を使用しますオブジェクトを作成します
- コンストラクタを使用して
- 列A =新しい文字列(「学生」)
- 列B =新しいString()
- 文字の配列の使用例
- 列A =新しい文字列(] [文字)
- 列A =新しい文字列(intは、int型の長さをオフセット] [文字)
- バイト配列を使用しての例
- 列A =新しい文字列(バイトA [])
接続文字列
- 複数のストリングを接続します
- +
- +時間=変数名には、非常に長い高い可読性です
- 接続の他のタイプ
- +演算子は一つだけのオペランドが文字列であり、コンパイラは、文字列(自動的に呼び出すのtoString()メソッド)に他のオペランドを変換します
情報の文字列を取得します
- 文字列の長さを取得します。
- str.length()
- str.lastIndexOf(「」);文字列インデックスに空の文字列は、文字列の長さに等しいです。
- 文字列検索
- str.indexOf(文字列S); S戻る指定された文字列の最初の発生のインデックスは、検索されない-1
- str.indexOf(のString、int型のfromIndexの);
- str.lastIndexOf(文字列s)は、検索文字列が表示されるの最後の位置への戻りは、取得されない-1
- str.lastIndexOf(のString、int型のfromIndexの);
- 文字のインデックス位置を取得します。
- str.charAt(int型のインデックス)
文字列操作
- 部分文字列を取得します
- (beginIndexパラメータINT)str.substring;戻りキャリアインデックス位置から文字列の末尾に
- (INTたbeginIndex、int型endIndexの)str.substring;長endIndexののインデックス部分文字列の開始から終了までの復帰 - beginIndexの、最後の文字のインデックスは、の意味の中に含まれていません
- 文字列の前後にスペースを削除
- str.trim();
- 文字列置換
- str.replace(文字oldChar、文字newCharに);置換文字列または、元の文字列にノーリターン
- str.replaceAll(「\\ s」は、「」);前者は正規表現のパラメータであり、すべてのスペースを削除するには、パラメータが交換されます
- 文字列の先頭と末尾の分析
- str.startsWith(文字列の接頭辞);戻り値boolean型
- str.endsWith(文字列の接尾辞)。
- 文字列が等しい分析
- str.equals(文字列otherstr);,返すブール値
- str.equalsIgnoreCase(文字列otherstr);ケースを無視
- 辞書的に文字列を比較
- str.compareTo(otherstr文字列); otherstr後の場合STR、文字の連続した文字列を比較し、最初のいくつかの位置の前または後に正の整数で、戻り値を返した後、前に負の整数を返します。均等リターン0
- str.compareToIgnoreCase(文字列otherstr)。
- レターケースの変換
- str.toLowerCase();
- str.toUpperCase();非数値文字には影響しません
- 文字列の分割
- str.split(文字記号);記号は、分離されている「|」区切りの複数の定義であり、正規表現であってもよいです
- str.split(文字記号、INT限界);限界は分割数を定義し、番号が最大の分割数よりも大きい全体を分割し、0未満
- 分割は正規表現にマッチします。手段は、あなたが脱出するには、\を使用する必要があり、任意の文字にマッチし、\自体は\\ので、エスケープする必要があります。
書式文字列
Stringクラスの静的メソッドギは、()フォーマットされた文字列を作成するために使用されます。
- 日付と時刻のフォーマット文字列
- 輸入輸入java.util.Dateする必要があります
- 日付日付=新しいDate(); Stringを= String.formate(文字列の形式、日付); sがフォーマットされた文字列であります
- 従来型のフォーマット
正規表現を使用します
- 正規表現のメタ文字は、このメタ文字は、文字の特定のセットを表し
- 大括弧[]囲まれた要素は、文字を表し、要素は、任意の文字の文字[ABC]文字要素、B4、C4の4 A4代表を表すことができます
- [^ abc]は、反対を表し、^、ABCを除く文字を表し
- [AZ] AZは、任意の文字を表し、 - 範囲を示します
- [AE [GZ] [] [加えた]は算術表し
- [青&& [DEF] &&は、クロス演算を表します
- [AD && [^] BC] && ^結合差分演算を表します
- |表すか、または、&&クロスを表し、[] ^反対に示され、のいずれかを表します。
- 限られた数の修飾は、限定されたメタ文字を表示されます
- str.matchs(文字列の正規表現);リターン・ブール
String型の発電機
文字列は、複数のストリングを接続するために使用される場合、+、メモリ内に新しい文字列オブジェクトを作成し、新しい列インスタンスが生成された文字列の長さが固定されている使用して作成された文字列の重複変形、かどう大幅にシステムのオーバーヘッドが増加します。文字のJDK5新しい可変配列大幅列の頻繁な増加の効率を向上させることができる(文字列ビルダー)クラス、。
- StringBufferのとStringBuider比較:
- 互換性のあるAPIを提供するために、しかしStringBuiderスレッドの同期を保証するものではありません、欠点はシングルスレッドであるだけで、効果がスレッドにロックされていません
- StringBufferの、StringBuider、文字列の交換
- 変換またはStringBuider使用StringBufferのコンストラクタ新しいStringBuider(文字列)、または新しいStringBuider(文字列)に文字列
- StringBufferの、StringBuiderは、toString()メソッドを使用して文字列に変換しました
- 文字列の再利用コンストラクタへのtoString()メソッドを使用するためのStringBufferとStringBuider変換方法
- StringBuilderのビルダー=新しいStringBuider();
- StringBuilderのビルダー=新しいStringBuider( "123");
- StringBuilderのビルダー=新しいStringBuider(32)、32文字の初期容量
- APPEND(コンテンツ);追加コンテンツ、StringBuiderリターンオブジェクトアドレス
- (INTオフセット、引数)を挿入し、挿入は、StringBuilderオブジェクトを返します
- サブストリングを削除し、オブジェクトStringBuiderを返します。(最終的には、int型の開始)を削除
- setCharAt(int型のインデックス、文字CH);なし戻り値
- 逆();抗次出力。
- toString(); Stringオブジェクトを返します
- 文字列と同様の方法
- INT lengt = builder.length();戻り値の文字列の長さ
- 文字CHR = builder.charAt(int型のインデックス);指定されたインデックスを取得
- int型のインデックス= builder.indexOf(String str)文字;指定された文字列のインデックスを取得します。
- 文字列SUBSTR =(int型beginIndexの、int型endIndexの)builder.substring、部分文字列を取得します
- StringBuider TMP = builder.replace(INTたbeginIndex、int型endIndexに、文字列str);(異なる文字列で)指定された文字列を置換します
- APIクエリの他のクラスメソッドjava.lang.StringBuilder
- StringBufferのバッファ=新しいStringBufferの(); 同StringBuider
package ex5_String;
public class ex5_28_Jerque {
public static void main(String[] args) {
String str = "";
long starTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
str += i;
}
long endTime = System.currentTimeMillis();
System.out.println("time: " + (endTime - starTime));
StringBuilder builder = new StringBuilder("");
starTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
builder.append(i);
}
endTime = System.currentTimeMillis();
System.out.println("time: " + (endTime - starTime));
}
}
練習
- 正規表現の電話番号を書きます
- 追加の文字列ビルダを使用します
package ex5_String;
public class ex5_practice_3 {
public static void main(String[] args) {
String text = "12345678912";
String regex = "1\\d{10}";
System.out.println(text + " is " + text.matches(regex) + " phone number");
StringBuilder builder = new StringBuilder("");
for (int i = 1; i<=10; i++) {
builder.append(i);
}
System.out.println(builder.toString());
}
}