Java中如何使用printf进行国际化输出

avatar
作者
筋斗云
阅读量:0

在Java中,可以使用ResourceBundle类来实现国际化输出。下面是一个示例代码,演示如何使用ResourceBundleString.format方法结合printf进行国际化输出:

import java.util.Locale; import java.util.ResourceBundle;  public class Main {     public static void main(String[] args) {         Locale locale = Locale.getDefault();         ResourceBundle messages = ResourceBundle.getBundle("Messages", locale);          String name = "Alice";         int age = 30;         double salary = 50000.00;          String greeting = messages.getString("greeting");         String output = String.format(messages.getString("output"), name, age, salary);          System.out.printf(greeting + "\n");         System.out.printf(output + "\n");     } } 

在上面的示例代码中,假设有一个Messages资源文件,其中包含了不同语言的字符串资源。greetingoutput是资源文件中定义的键,分别对应不同语言环境下的问候语和输出格式。

通过ResourceBundle.getBundle方法获取相应语言环境的资源文件,然后通过String.format方法将变量插入到输出字符串中,最后通过System.out.printf方法输出国际化字符串。

要实现国际化输出,需要为不同语言环境创建不同的资源文件,文件名格式为[basename]_[language code]_[country code].properties,如Messages_en_US.propertiesMessages_fr_FR.properties。在资源文件中,可以定义不同语言环境下的字符串资源,并通过键值对的形式进行访问。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!