当前位置: 首页 > 面试题库 >

Java Scanner到底如何解析两倍?

申屠乐池
2023-03-14
问题内容

我正在使用Windows 7计算机,其“控制面板\时钟,语言和区域”为“丹麦”

根据扫描仪的文档:

扫描程序的初始语言环境是Locale.getDefault()方法返回的值。

但是当我运行代码时:

System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

它输出“ en_US”,然后在sc.nextDouble()处引发java.util.InputMismatchException。当扫描仪初始化为“
1,0”时,它可以工作

但是,如果我明确设置了语言环境:

Locale.setDefault(Locale.US);
System.out.println(Locale.getDefault());
Scanner sc = new Scanner("1.0");
sc.nextDouble();

它输出“ en_US”,然后解析双精度值。我是否缺少某些内容,或者扫描仪的文档有误?

编辑 按照@Perception的建议,我在第一个示例中查看了sc.locale()。打印“
da_DK”。那么,为什么Locale.getDefault()方法返回的结果不是“ en_US”?


问题答案:

有两种不同的区域设置类别,一种用于显示,另一种用于格式。扫描程序使用,Locale.getDefault(Locale.Category.FORMAT)但是如果您致电,Locale.getDefault()您将获得要显示的语言环境。该setLocale(Locale)方法将两者都设置。



 类似资料:
  • 我使用的是Windows 7机器,其"控制面板\时钟,语言和区域"是丹麦" 根据扫描仪的文档: 扫描仪的初始区域设置是Locale.getDefault()方法返回的值; 但当我运行代码时: 它输出“en_US”,然后抛出一个java。util。sc.nextDouble()处的输入不匹配异常。当扫描器初始化为“1,0”时,它工作 但是,如果我明确设置了区域设置: 它输出“en_US”,然后很好地

  • null 例如,我在清单中定义了两个变量: 当调试角色中这些变量的类型时······ ...然后变成,但是被解释为: 我不得不在执行生产剧本后艰难地意识到这一点,运行一些不应该运行的东西,因为在库存中变量设置为“false”而不是“false”。因此,我真的很想找到一个明确的答案,关于Ansible如何理解布尔值,以及它如何依赖于变量的定义位置/方式。为了保险起见,我应该简单地总是使用大写的tru

  • 问题内容: 生成器理解是做什么的?它是如何工作的? 问题答案: 生成器表达式就像一个列表推导,但是它没有找到你感兴趣的所有项目并将它们打包到列表中,而是等待,并逐个生成表达式中的每个项目。 由于生成器表达式一次只需要产生一项,因此可以节省大量内存。在需要一次获取一项,根据该项进行大量计算然后移至下一项的情况下,生成器表达式最有意义。如果需要多个值,则还可以使用生成器表达式,一次获取几个。如果在程序

  • 问题内容: 我对iOS应用程序开发非常陌生,并且从服务器收到以下响应: 请任何人帮助我了解如何在我的应用程序中使用员工ID和员工姓名。 问题答案: 您的JSON数据看起来像“嵌套JSON”,这意味着您必须将其反序列化两次。 第一个反序列化从您的JSON数据中提取一个字符串: 现在是字符串 再次是JSON数据。第二个反序列化提取数组: 现在您可以像访问它

  • 主要内容:一、写在前面,二、ReentrantLock和AQS的关系,三、ReentrantLock加锁和释放锁的底层原理,四、总结一、写在前面 上一篇文章聊了一下java并发中常用的原子类的原理和Java 8的优化,具体请参见文章:《为什么程序员招聘都要5年经验起?因为他们懂Java8底层优化!》。 这篇文章,我们来聊聊面试的时候比较有杀伤力的一个问题:聊聊你对AQS的理解? 之前有同学反馈,去互联网公司面试,面试官聊到并发时就问到了这个问题。当时那位同学内心估计受到了一万点伤害。。。 因为首

  • 问题内容: 在查找(测试)信息时,我遇到了一些问题,完全不知道为什么会发生。现在,我知道没有实际的理由执行此操作,这绝对是可怕的代码,但是为什么行得通呢? 因此,基本上,我将对象添加到Quods的ArrayList中。现在,我看到java如何无法有效地检查它,因为它必须浏览所有引用,而这些引用可能甚至都没有存储在任何地方。但是为什么get()起作用了。get()是否不是要返回Quod的实例,就像在