[解決済み] intからStringへの変換方法を教えてください。
2022-03-21 12:32:04
質問
プロジェクトで、すべての変換を
int
から
String
はこのように行われます。
int i = 5;
String strI = "" + i;
Javaに詳しくないのですが。
これは通常のやり方なのか、それともやはり何か問題があるのでしょうか?
解決方法は?
通常の方法としては
Integer.toString(i)
または
String.valueOf(i)
.
連結はうまくいきますが、型破りで、作者が上記の2つの方法を知らないことを示唆するため、悪臭を放つ可能性があります(他に何を知らないというのでしょうか)。
Java では、文字列で使用する場合の + 演算子を特別にサポートしています ( ドキュメント に変換されます。
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(i);
String strI = sb.toString();
をコンパイル時に実行します。若干効率が悪いですが(
sb.append()
を呼び出すことになります。
Integer.getChars()
であり、それは
Integer.toString()
のようなものです)でも、うまくいきました。
Grodriguezさんのコメントにお答えします。** いいえ、コンパイラは ではありません。 この場合、空文字列は最適化されます - 見てください。
simon@lucifer:~$ cat TestClass.java
public class TestClass {
public static void main(String[] args) {
int i = 5;
String strI = "" + i;
}
}
simon@lucifer:~$ javac TestClass.java && javap -c TestClass
Compiled from "TestClass.java"
public class TestClass extends java.lang.Object{
public TestClass();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: iconst_5
1: istore_1
StringBuilderを初期化する。
2: new #2; //class java/lang/StringBuilder
5: dup
6: invokespecial #3; //Method java/lang/StringBuilder."<init>":()V
空文字列を追加する。
9: ldc #4; //String
11: invokevirtual #5; //Method java/lang/StringBuilder.append:
(Ljava/lang/String;)Ljava/lang/StringBuilder;
整数を追加する。
14: iload_1
15: invokevirtual #6; //Method java/lang/StringBuilder.append:
(I)Ljava/lang/StringBuilder;
最終的な文字列を抽出する。
18: invokevirtual #7; //Method java/lang/StringBuilder.toString:
()Ljava/lang/String;
21: astore_2
22: return
}
そこに 提案 この動作を変更するために、JDK 9をターゲットにした作業が進行中です。
関連
-
eclipseにプロジェクトをインポートした後、Editorにmain typeが含まれない問題
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] C++でintをstringに変換する最も簡単な方法
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
javaの模造品QQ WeChatのチャットルーム
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
JSPで「リストが型解決できない!」の解決方法
-
テストが見つかりませんでした
-
[解決済み] Java - 整数を文字列に変換する [重複].