2011-03-16 46 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 
    } 
}