如何在GWT中格式化我的字符串?
我做了一个方法
Formatter format = new Formatter();
int matches = 0;
Formatter formattedString = format.format("%d numbers(s, args) in correct position", matches);
return formattedString.toString();
Run Code Online (Sandbox Code Playgroud)
但它抱怨道
Validating newly compiled units
[ERROR] Errors in 'file:/C:/Documents%20and%20Settings/kkshetri/workspace/MasterMind/MasterMind/src/com/kunjan/MasterMind/client/MasterMind.java'
[ERROR] Line 84: No source code is available for type java.util.Formatter; did you forget to inherit a required module?
Run Code Online (Sandbox Code Playgroud)
不包括Formatter吗?
Jos*_*ust 34
请参阅GWT日期和数字格式的官方页面.
他们建议如下:
myNum decimal = 33.23232;
myString = NumberFormat.getFormat("#.00").format(decimal);
Run Code Online (Sandbox Code Playgroud)
最好使用他们支持的优化方法,而不是制作自己的非最佳方法.他们的编译器最终会优化它们到几乎相同的东西.
yeg*_*256 22
GWT 2.1+中String.format()的一个非常简单的替换:
import com.google.gwt.regexp.shared.RegExp;
import com.google.gwt.regexp.shared.SplitResult;
public static String format(final String format, final Object... args) {
final RegExp regex = RegExp.compile("%[a-z]");
final SplitResult split = regex.split(format);
final StringBuffer msg = new StringBuffer();
for (int pos = 0; pos < split.length() - 1; ++pos) {
msg.append(split.get(pos));
msg.append(args[pos].toString());
}
msg.append(split.get(split.length() - 1));
return msg.toString();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
甚至更简单,不使用RegExp,只使用字符串:
public static String format(final String format, final String... args) {
String[] split = format.split("%s");
final StringBuffer msg = new StringBuffer();
for (int pos = 0; pos < split.length - 1; pos += 1) {
msg.append(split[pos]);
msg.append(args[pos]);
}
msg.append(split[split.length - 1]);
return msg.toString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29172 次 |
| 最近记录: |