gpt4 book ai didi

java - Netbeans 11.1 以 Windows 默认语言打印数字

转载 作者:行者123 更新时间:2023-11-30 12:02:48 25 4
gpt4 key购买 nike

我仍在使用 Netbeans 11.1 学习 Java。

我的问题是当我尝试运行一个应该显示数字的程序时,我得到的数字是用阿拉伯语打印的,这是我的 Windows 默认语言。

这是我得到的结果:

NetBeans output window

我添加了这一行:-J-Duser.language=en -J-Duser.region=US添加到 netbeans.conf 文件,但这并没有解决问题。

另一种解决方案建议使用 scanner.useLocale(Locale.ENGLISH);但我不明白如何以及在哪里使用它。这是我的代码:

package lesson02;

public class ProvidedVariablesOneStatement {
public static void main(String[] args) {
String name = "Khalid"; name
int age = 24;
double gpa = 3.40;
System.out.printf("%s is %d years old. %s has %f gpa. \n", name, age, name, gpa);
}
}

name用英文字母打印没有问题,但是agegpa用阿拉伯数字打印。输出是:

Khalid 5 岁。 Khalid 拥有 ٣٫٤٠٠٠٠٠ gpa。

最佳答案

要使用西方阿拉伯数字在输出中呈现数字,您只需在应用程序中适本地显式设置 Locale

这是您的程序的一个稍微修改过的版本,它首先使用东方阿拉伯数字显示信息,然后使用西方阿拉伯数字显示相同的信息。

package javaapplication18;

import java.text.NumberFormat;
import java.util.Locale;

public class JavaApplication18 {

public static void main(String[] args) {

String name = "Khalid";
int age = 24;
double gpa = 3.40;

Locale arLocale = new Locale("ar");
NumberFormat nf = NumberFormat.getInstance(arLocale);
System.out.println("Country: " + arLocale.getCountry() + ", Language: " + arLocale.getLanguage());
System.out.printf("%s is %s years old. %s has %s gpa. \n",
name, nf.format(age), name, nf.format(gpa));

Locale usLocale = new Locale("us", "EN");
nf = NumberFormat.getInstance(usLocale);
System.out.println("Country: " + usLocale.getCountry() + ", Language: " + usLocale.getLanguage());
System.out.printf("%s is %s years old. %s has %s gpa. \n",
name, nf.format(age), name, nf.format(gpa));
}
}

这是在 NetBeans 的 Output 窗口中显示的内容:

Country: , Language: ar
Khalid is ٢٤ years old. Khalid has ٣٫٤ gpa.
Country: EN, Language: us
Khalid is 24 years old. Khalid has 3.4 gpa.

注意事项:

  • 查看 Oracle Java Tutorial了解语言环境。
  • 请参阅 Locale 的 Javadocs和 NumberFormat了解更多详情。
  • 您还应该能够在 netbeans.conf 中设置区域设置,但我选择以编程方式进行设置以显示动态切换它的效果。
  • NetBeans 中的输出 窗口必须配置为使用一种字体来支持您用于输出的语言。显然,这对您来说不是问题。

关于java - Netbeans 11.1 以 Windows 默认语言打印数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58251282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com