GWT 中的字符串格式化程序

2022-09-01 04:12:07

如何在 GWT 中设置字符串的格式?

我做了一个方法

  Formatter format = new Formatter();
    int matches = 0;
    Formatter formattedString = format.format("%d numbers(s, args) in correct position", matches);
    return formattedString.toString();

但它抱怨说

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?

是否包含格式化程序?


答案 1

请参阅有关GWT日期和数字格式的官方页面

他们提出以下建议:

myNum decimal = 33.23232;
myString = NumberFormat.getFormat("#.00").format(decimal);

最好使用他们支持的优化方法,而不是烹饪自己的非最佳方法。他们的编译器最终会将它们全部优化为几乎相同的内容。


答案 2

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();
}

推荐