当前位置: 首页 > 知识库问答 >
问题:

默认使用逗号的Netbeans。为什么?

邵飞宇
2023-03-14

大家好,Netbeans(像大多数IDE一样)使用点(.)组织小数点,对吗?我不知道为什么,但我的IDE开始使用逗号(,)来组织小数点。。。甚至控制台中显示的输出也使用逗号。如何将其更改回默认设置并再次开始使用小数点?

PS:当我尝试使用点和小数位数(例如4.5)输入数字时,我会收到以下错误消息:

Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
    at EstruturasDeControle.If.main(If.java:16)
Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:764)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:711)
    at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:289)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

共有1个答案

胥诚
2023-03-14

扫描输入期望逗号而不是句号作为十进制值的分隔符(反之亦然),这与正在使用的Locale直接相关。

有三种方法可以指定区域设置来解决问题:

>

  • 您可以指定在启动NetBeans时默认用作参数的语言环境:

    ——语言环境

    例如:--locale en: US代表美式英语,--locale fr: FR代表法语。

    此设置仅适用于当前NetBeans会话。

    您可以通过在NetBeans安装目录中的文件etc/netbeans.conf中指定它来永久设置NetBeans使用的默认语言环境:

    • 在任何文本编辑器中打开该文件

    您可以在代码中动态指定要在应用程序级别使用的Locale。例如,在本例中,您可以通过调用useLocale()来设置应用程序的扫描仪所使用的区域设置。

    您的代码可能如下所示:

    Scanner scanner = new Scanner(System.in);
    scanner.useLocale(Locale.US); // US locale, so period is expected for numeric input.
    ...
    scanner.useLocale(Locale.FR); // France locale, so comma is expected for numeric input.
    

    这三种方法都可以解决您的问题,您可以使用其中任何一种或全部。您的具体需求决定了要使用的一个或多个。

  •  类似资料:
    • 问题内容: 我有一个文本文件,其中包含许多置换以及特殊字符,空格和数据的组合。我将此文件的内容存储到数组列表中,如果我不使用函数,则Java会完美读取我的文本。 唯一的问题是它不接受 逗号 ()和 点 ()作为定界符。 我知道我可以使用用 逗号 , 点 , 空间 的分隔符和其他选项一样好,但后来我得到的结果如Java给了我现在是不正确的。 有没有一种方法可以指示java使用 逗号 和 点 作为分隔

    • 字体Monospaced映射到不同系统上的不同字体。在Windows上,它被映射到“Courier”,在Linux上,它被映射到“Lucida Typewriter”。 http://ui.netbeans.org/docs/ui/editor_fonts_colors/editor_fonts_and_colors.htm 我在windows上,想将单倍行距字体映射到“consolas”而不是“

    • 问题内容: 我倾向于用括号为numpy数组(矩阵)建立索引,但是当我想对数组(矩阵)进行切片时,我注意到我必须使用逗号表示法。为什么是这样?例如, 问题答案: 这个: 表示“沿第一个轴获取所有索引,但沿第二个轴仅获取索引1”。 这个: 意思是“沿第一个轴获取所有索引(所以的全部),然后沿结果的 第一个 轴获取索引1 ”。您将应用于错误的轴。 并且仅是等效的,因为使用整数对数组进行索引会将所有其余轴

    • 问题内容: FindBugs报告一个错误: 依赖默认编码找到了对将执行字节到字符串(或字符串到字节)转换的方法的调用,并假定默认平台编码是合适的。这将导致应用程序行为在平台之间有所不同。使用备用API并明确指定字符集名称或字符集对象。 我像这样使用FileReader(仅是一段代码): 要更正错误,我需要更改 至 当我使用PrintWriter时,发生了相同的错误。所以现在我有一个问题。什么时候可

    • 我知道我可以在POM中定义这些插件的最新版本。但是为什么默认的maven使用这么旧的版本呢?我是否缺少任何配置?