Nasıl Dize int dönüştürmek için?
String
int
tüm dönüşümler bu şekilde yapmış olduğu bir proje üzerinde çalışıyorum:
int i = 5;
String strI = "" i;
Java aşina değilim. Sanırım bu olağan bir uygulama olduğunu ya da ters giden birşeyler var mı?
CEVAP
Normal yollar Integer.toString(i)
String.valueOf(i)
olurdu.
Birleştirme çalışacak, ama sıradışı ve yazarın iki yöntem bilmiyor anlaşılacağı gibi kötü bir koku olabilir yukarıda (başka bildikleri ne olabilir?).
Java içine ilan kodu çevirir dizeleri (docs) ile kullanıldığında operatör için özel destek vardır:
StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(i);
String strI = sb.toString();
-derleme. Biraz daha az verimli (sb.append()
Integer.toString()
neyse ne yapabilirdi ki Integer.getChars()
, arama biter), ama işe yarıyor.
Cevap Grodriguez yorum düzenleyinhayır, derleyiciyokbu durumda, boş bir dize - bak: optimize
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 yeniden:
2: new #2; //class java/lang/StringBuilder
5: dup
6: invokespecial #3; //Method java/lang/StringBuilder."<init>":()V
Boş dize ekleyin:
9: ldc #4; //String
11: invokevirtual #5; //Method java/lang/StringBuilder.append:
(Ljava/lang/String;)Ljava/lang/StringBuilder;
Tamsayı ekleme:
14: iload_1
15: invokevirtual #6; //Method java/lang/StringBuilder.append:
(I)Ljava/lang/StringBuilder;
Son dize özü:
18: invokevirtual #7; //Method java/lang/StringBuilder.toString:
()Ljava/lang/String;
21: astore_2
22: return
}
Nasıl Ruby alt veya üst durumda bir di...
Nasıl dize Python küçük harfe dönüştür...
Bayt dönüştürmek için [nasıl] dize?...
Java nasıl bir dize bir karakter dönüş...
Nasıl Dize int dönüştürmek için?...