2011-03-16 67 views
25

這裏是做字符串替換的方法有兩種:相當於Java Python的格式()

name = "Tshepang" 
"my name is {}".format(name) 
"my name is " + name 

我該怎麼做類似於第一種方法的東西,用Java?

回答

27
name = "Paŭlo"; 
MessageFormat f = new MessageFormat("my name is {0}"); 
f.format(new Object[]{name}); 

或更短:

MessageFormat.format("my name is {0}", name); 
+0

Bah,我應該試過這個......現在它應該工作。 – 2011-03-16 12:31:25

24
String s = String.format("something %s","name"); 
+2

有沒有辦法避免像Python的'format()'函數允許的那樣指定類型(例如'%s')? – Tshepang 2011-03-16 10:37:03

+0

@Tshepang不幸的是,你不能像Python中的文字一樣使用它。所以你將永遠不得不在String類上調用這個靜態方法。 – Chris 2011-03-16 10:40:01

+0

@Chris:不確定你(或我)的理解。我的意思是說我會有一些類似於String.format(「我的名字是{}」,name)'的東西。 – Tshepang 2011-03-16 10:42:33

1

Underscore-javaformat()靜態方法。

import com.github.underscore.$; 

public class Main { 
    public static void main(String[] args) { 
     String name = "Tshepang"; 
     String formatted = $.format("my name is {}", name); 
     // my name is Tshepang 
    } 
}