সাধারণ উপায় হতে পারে Integer.toString(i)
বা String.valueOf(i)
।
উপসংহারটি কাজ করবে, তবে এটি প্রচলিত নয় এবং এটি দুর্গন্ধযুক্ত হতে পারে কারণ এটি সুপারিশ করে যে লেখক উপরোক্ত দুটি পদ্ধতি সম্পর্কে জানেন না (তারা কী কী জানেন না?)।
স্ট্রিংয়ের সাথে ব্যবহার করার সময় জাভা + অপারেটরের জন্য বিশেষ সমর্থন করে ( ডকুমেন্টেশন দেখুন ) যা আপনার পোস্ট করা কোডটি অনুবাদ করে:
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(i);
String strI = sb.toString();
সংকলন সময়ে। এটি সামান্য কম দক্ষ ( sb.append()
কলিং শেষ হয় Integer.getChars()
, যা এটি Integer.toString()
যাইহোক যা করত) তবে এটি কার্যকর works
গ্রোড্রিগেজের মন্তব্যের জবাব দিতে: ** না, সংকলক এই ক্ষেত্রে খালি স্ট্রিংটিকে অপ্টিমাইজ করে না - দেখুন:
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
স্ট্রিংবিল্ডার শুরু করুন:
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 টার্গেট পরিবর্তন।