使用Java中的ResourceBundle标准化你的提示信息

使用到的几个工具类

java.text.MessageFormat;
java.util.MissingResourceException;
java.util.ResourceBundle;



首先编写一个 .properties 文件作为你的 提示信息模板,这里我就新建了一个,叫 LocalStrings.properties

string.fmt1=hello {0}
string.fmt2=hello {0},{1}



实验代码如下:

public class ResourceBundleTest
{

	private static final String			BUNDLE_NAME		= "LocalStrings";
	private static final ResourceBundle	RESOURCE_BUNDLE	= ResourceBundle.getBundle(BUNDLE_NAME);

	public static String get(String key, Object... args) {
		String template = null;
		try {
			template = RESOURCE_BUNDLE.getString(key);
		} catch (MissingResourceException e) {
			StringBuilder b = new StringBuilder();
			try {
				b.append(RESOURCE_BUNDLE.getString("message.unknown"));
				b.append(": ");
			} catch (MissingResourceException e2) {
			}
			b.append(key);
			if (args != null && args.length > 0) {
				b.append("(");
				b.append(args[0]);
				for (int i = 1; i < args.length; i++) {
					b.append(", ");
					b.append(args[i]);
				}
				b.append(")");
			}
			return b.toString();
		}
		return MessageFormat.format(template, args);
	}

	public static void main(String[] args) {
		System.out.println(get("string.fmt1"," world","为什么不能是中文"));
		System.out.println(get("string.fmt2"," world","为什么不能是中文"));
		System.out.println(get("string.fmt21"," world","为什么不能是中文"));
	}

}



结果 :
hello  world
hello  world,为什么不能是中文
string.fmt21( world, 为什么不能是中文)


你可能感兴趣的:(使用Java中的ResourceBundle标准化你的提示信息)