2011-07-21 18 views
6

.NET (belki sadece VB.NET) içinde String.Format dönüştürmek {0}, {1}, ... belirlenen Dizesi'ne, örneğin:Java'da String.Format (.NET) karşılığı mı?

Dim St As String = "Test: {0}, {1}" 
Console.WriteLine(String.Format(St, "Text1", "Text2")) 

ben hem de arama denedim Google ve StackOverflows, ancak hepsi sayı dizesi biçimini döndürür. Diğer yöntemler için

+0

İlgili soru: http://stackoverflow.com/questions/187676/java-equivalents-of-c-sharp-string-format-and-string-join?rq=1 –

+0

[Java Eşdeğeri için olası yineleme. NET'in String.Format] (http://stackoverflow.com/questions/3754597/java-equivalent-to-nets-string-format) –

cevap

8

Diğer öneriler kesinlikle iyidir, ancak daha çok Java'ya daha yeni eklenen printf ve onun soyunun stilindedir. Gönderdiğiniz kod MessageFormat'dan esinlenilmiş görünüyor.

String format = "Test: {0}, {1}" 
System.out.println(MessageFormat.format(format, "Text1", "Text2")) 

Ben 'Return: ifadesi olsa ne yaptığını gerçekten emin değilim.

0
System.out.printf() 
System.out.format() 

kullanın:

StringBuilder sb = new StringBuilder(); 
Formatter f = new Formatter(sb, Locale.US); 
f.format("my %s", "string"); 
+0

Spinning_plate yönteminden çok daha uzun görünüyor, fark nedir? –

+0

Aynı sonuç, Biçimlendiricinin daha fazlasını yapabileceğine inanıyorum ama onun yöntemiyle giderdim, farklı tipte biçimlendirme yapıyor olmanız durumunda başkalarını göstermek istedim. –

4
String.format("Test: %s, %s",string1,string2) 
+0

Teşekkürler, bu yüzden% s değil {}. –

6

Kullanım MessageFormat.format, ayrıca yedek belirteçlerindeki biçimlendirme argümanlar sağlayabilir.

message = MessageFormat.format("This is a formatted percentage " + 
       "{0,number,percent} and a string {1}", varNumber, varText); 
     System.out.println(message); 

message = MessageFormat.format("This is a formatted {0, number,#.##} " + 
       "and {1, number,#.##} numbers", 25.7575, 75.2525); 
     System.out.println(message); 

Alternatif olarak, String.format kullanılabilir, ancak bu örneğin konumu garanti etmez String.format("What do you get if you multiply %d by %s?", varNumber, varText);.

+2

Bu cevap tamamlanmadı. Bu direkt değiştirme değil. .NET'te {0} ve {1} var, böylece parametrelerin yerini tanımlarlar. Örneğin, "Test: {1}, {0}" olabilir, bu yüzden% s,% s yanlış yerlerin yerini alır. – frankish

İlgili konular