Java-Stringの詳細(Stringに関する10の問題)
2つの文字列を比較する方法「=」かequalsか
簡単に言えば、===は、メモリ内の同じオブジェクトを指すかどうかを検出するために使用され、equals()メソッドは、2つのオブジェクトの値が等しいかどうかを検出します.2つの文字列が等しいかどうかを検出するには、equals()メソッドを使用する必要があります.
「文字列保持(string intern)」の概念を知っていればもっといいです.
なぜセキュリティに敏感な文字列情報はchar[]でStringオブジェクトより良いのですか?
Stringオブジェクトが可変でないことは、ゴミ回収器が清掃に来るまで変化しないことを意味します.配列を使用すると、任意の位置の文字要素を明確に変更できます.これにより,パスワードなどのセキュリティに敏感な情報はシステムのどこにも現れない.
文字列オブジェクトはswitch式で使用できますか?
JDK 7からなら、switch条件式で文字列を使うことができます.つまり、7以前のバージョンではできません.
正規表現を簡単に使用して区切ることができます.「s」はスペースを表し、「,」t,」r,」.
JDK 6では、既存の文字列を識別する文字配列にウィンドウを開いて結果文字列を表すだけですが、新しい文字列オブジェクトは作成されません.新しい文字列オブジェクトを作成する必要がある場合は、結果の後に空の文字列を追加できます.
Oracle JDK 7のsubstring()メソッドでは、以前は存在しなかった新しい文字配列が作成されます.この図を見ると、JDK 6とJDK 7の違いがわかります.
String&StringBuilder&StringBuffer
String vs StringBuilder:StringBuilderは可変です.これは、オブジェクトを作成した後も値を変更できることを意味します.StringBuilder vs StringBuffer:StringBufferは同期されており、スレッドが安全であることを意味しますが、StringBuilderよりも遅くなります.
文字列をすばやく繰り返すにはどうすればいいですか?
Pythonプログラミングでは、文字列に数字を乗じるだけで済むので、JavaプログラミングではApache Commons LangパッケージからのStringUtilsクラスのrepeat()メソッドを使用することができます.
Apache Commons LangパッケージのStringUtilsクラスを使用すると、この作業を完了できます.
簡単に言えば、===は、メモリ内の同じオブジェクトを指すかどうかを検出するために使用され、equals()メソッドは、2つのオブジェクトの値が等しいかどうかを検出します.2つの文字列が等しいかどうかを検出するには、equals()メソッドを使用する必要があります.
「文字列保持(string intern)」の概念を知っていればもっといいです.
なぜセキュリティに敏感な文字列情報はchar[]でStringオブジェクトより良いのですか?
Stringオブジェクトが可変でないことは、ゴミ回収器が清掃に来るまで変化しないことを意味します.配列を使用すると、任意の位置の文字要素を明確に変更できます.これにより,パスワードなどのセキュリティに敏感な情報はシステムのどこにも現れない.
文字列オブジェクトはswitch式で使用できますか?
JDK 7からなら、switch条件式で文字列を使うことができます.つまり、7以前のバージョンではできません.
// java 7 only!
switch (str.toLowerCase()) {
case "a":
value = 1;
break;
case "b":
value = 2;
break;
}
文字列を整数値に変換するにはどうすればいいですか?int n = Integer.parseInt("10");
文字列をスペースで区切るにはどうすればいいですか?正規表現を簡単に使用して区切ることができます.「s」はスペースを表し、「,」t,」r,」.
String[] strArray = aString.split("\\s+");
substring()の方法は具体的に何をしましたか?JDK 6では、既存の文字列を識別する文字配列にウィンドウを開いて結果文字列を表すだけですが、新しい文字列オブジェクトは作成されません.新しい文字列オブジェクトを作成する必要がある場合は、結果の後に空の文字列を追加できます.
str.substring(m, n) + ""
このように書くと、結果文字列を表す新しい文字配列が作成されます.また、このように書くと、ゴミ回収器が使用している大きな文字列を回収せずにサブ文字列を残す確率もあります.Oracle JDK 7のsubstring()メソッドでは、以前は存在しなかった新しい文字配列が作成されます.この図を見ると、JDK 6とJDK 7の違いがわかります.
String&StringBuilder&StringBuffer
String vs StringBuilder:StringBuilderは可変です.これは、オブジェクトを作成した後も値を変更できることを意味します.StringBuilder vs StringBuffer:StringBufferは同期されており、スレッドが安全であることを意味しますが、StringBuilderよりも遅くなります.
文字列をすばやく繰り返すにはどうすればいいですか?
Pythonプログラミングでは、文字列に数字を乗じるだけで済むので、JavaプログラミングではApache Commons LangパッケージからのStringUtilsクラスのrepeat()メソッドを使用することができます.
String str = "abcd";
String repeated = StringUtils.repeat(str,3);
//abcdabcdabcd
時間フォーマットの文字列をdateオブジェクトに変換するにはどうすればいいですか?String str = "Sep 17, 2013";
Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
System.out.println(date);
//Tue Sep 17 00:00:00 EDT 2013
文字列に表示される文字数をカウントするにはどうすればいいですか?Apache Commons LangパッケージのStringUtilsクラスを使用すると、この作業を完了できます.
int n = StringUtils.countMatches("11112222", "1");
System.out.printl``` n(n);
テキストリンク: programcreek 翻訳: ImportNew.com - strongme翻訳リンク: http://www.importnew.com/12845.html