为什么当我使用扫描仪 sc.nextDouble() 时出现 InputMismatchException

2024-01-25

我想从一个读取数据txt文件,但我得到InputMismatchException当我打电话时nextDouble()方法。即使我正在使用useLocale方法,但是不起作用。

txt文件第一行是:1;forname;1.9

public class SimpleFileReader {
    public static void main(String[] args){
        readFromFile();
    }
    public static void readFromFile(){
        try {
            int x = 0;
            File file = new File("read.txt");
            Scanner sc = new Scanner(file).useDelimiter(";|\\n");
            sc.useLocale(Locale.FRENCH);
            while (sc.hasNext()){
                System.out.println(sc.nextInt()+" "+sc.next()+" "+sc.nextDouble());
                x++;
            }
            System.out.println("lines: "+x);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

归咎于法语语言环境:它使用逗号作为小数点分隔符,所以1.9无法解析。

更换1.9 with 1,9解决了问题(demo 1 http://ideone.com/IusD9m)。如果你想解析1.9, use Locale.US代替Locale.FRENCH (demo 2 http://ideone.com/YPLvLu).

代码中的第二个问题是使用\\n作为分隔符。您应该使用单个反斜杠,否则包含的单词n会破坏你的解析逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么当我使用扫描仪 sc.nextDouble() 时出现 InputMismatchException 的相关文章

随机推荐

  • Vue.js 计算属性在通过事件传递时会失去其反应性

    我有一个Modal我的主应用程序中的组件 每当必须显示模式时 它都会通过事件获取传递的内容 模态内容始终是一个列表 其中包含与每个项目关联的操作 例如 选择 或 删除 Vue component modal data return show
  • JavaScript onHover 事件

    有没有规范的方法来设置JSonHover事件与现有的onmouseover onmouseout和某种计时器 或者当且仅当用户将鼠标悬停在元素上一定时间时触发任意函数的任何方法 像这样的事情怎么样
  • 如何摆脱TListBox垂直滚动限制?

    我已经实现了日志查看器使用TListBox在虚拟模式下 http blog synopse info post 2011 08 20 Enhanced Log viewer 它工作正常 对于我编写的所有代码 按预期显示内容 我什至轻松添加了
  • SSE 寄存器返回且 SSE 禁用

    我处于以下情况 我正在为不允许 SSE 指令的内核编写代码 我需要进行浮点运算 我正在针对 x86 64 平台进行编译 这是说明该问题的代码示例 int main int argc char argv double d 0 0 dbase
  • Google Play 游戏服务警报:“检测到不正确的实施”

    我最近在 Google Play 开发者控制台中收到了有关我的游戏的以下警报 检测到不正确的实施 您的游戏错误地实现了以下 Play 游戏服务 成就 它提供了一个链接帮助页面 https support google com googlep
  • 分区表视图索引选择突出显示

    我觉得这应该是一个简单的属性 但我一生都在寻找 但找不到答案 我的表格右侧有一个表格视图索引 选择后 所有内容都会变灰 我想模仿 iPod 应用程序 当选择索引本身时 它是半透明的 alpha 可能为 0 4f 有任何想法吗 据我发现 这可
  • 在执行 DataBind 之前如何对 DataSet 进行排序?

    我有来自数据库的数据 格式为DataSet 然后我将其设置为DataSource在执行之前的网格控件DataBind 我想排序DataSet DataTable在一列上 该列在数据库中排序太复杂 但我希望可以像对通用列表进行排序一样对其进行
  • 编组变量参数 - __arglist 或替代方案

    描述我试图解决的问题的最佳方式是用代码进行讨论 我在这个论坛上看到很多 arglist 问题 但没有很多有用的答案 我知道应该避免 arglist 所以我愿意接受替代方法 在一个 C 模块中 我有如下内容 void SomeFunction
  • 什么是进程和线程?

    是的 我读过很多操作系统相关的资料 我还在读书 但似乎它们都在以 抽象 的方式描述进程和线程 这对它们的行为和逻辑组织做了很多高层的阐述 我想知道它们是什么身体上的 在我看来 它们只是一些内存中的 数据结构 由内核代码维护和使用 以方便程序
  • 我如何告诉 webdriver-io 使用 Firefox 开发者版本?

    我如何告诉 webdriver io 使用 Firefox 开发者版本而不是普通的 Firefox 我需要使用普通 Firefox 不支持的 CSS4 选择器 我阅读了文档 但找不到该选项 您需要通过设置重新定义 Firefox 的位置bi
  • 如何以编程方式更新反应路由器中的查询参数?

    我似乎无法找到如何在不使用的情况下使用react router更新查询参数 hashHistory push url 似乎没有注册查询参数 并且您似乎无法传递查询对象或任何内容作为第二个参数 如何更改网址 shop Clothes dres
  • 参数类型“String”无法分配给参数类型“Uri”

    我正在尝试使用 flutter 插件 HTTP 发出 HTTP POST 请求 但收到标题错误 有谁知道这个原因 因为在我的其他应用程序中这工作得很好 await http post Uri encodeFull https api ins
  • 无法访问动态特征实现中的结构字段[重复]

    这个问题在这里已经有答案了 在尝试使用通用参数实现特征并访问这些通用参数的字段时 我遇到一条错误消息 指出相关参数不包含此类字段 下面是一些显示该问题的示例代码 pub struct Settings pub time String pub
  • AWS API 网关 - CORS + POST 不起作用

    CORS这真的让我发疯 我真的不知道如何让它发挥作用 我创建了一个简单的 APIG Api 其中包含 1 个名为 abc 的资源 并添加了 2 个方法GET and POST两者都与授权 set to NONE and 需要 API 密钥
  • 使用 LINQ 更新记录

    我需要在表中为行子集设置一个值 在 SQL 中 我会这样做 UPDATE dbo Person SET is default 0 WHERE person id 5 有没有办法在 LINQ 中做到这一点 我目前使用的是 var result
  • 为什么最小宽度较小的媒体查询会覆盖较大的媒体查询?

    我试图理解为什么min width 600下面的媒体查询将覆盖min width 768媒体查询 我知道 600px 在 CSS 文件中出现得较晚 这可能是一个原因 但肯定只有在屏幕尺寸为 600 或 768 时才应应用一个 我现在正在研究
  • T4MVC 或 MvcFutures 用于视图中的强类型链接

    我正在尝试减少 消除 MVC3 项目中的 魔术字符串 并且想知道哪种方法更好 使用 MvcFutures 并执行以下操作 var title Create New Customer Html ActionLink c gt c Create
  • UIWebView 在文本字段焦点后滚动

    I have UIView and UIWebView在屏幕上 当我单击网站中的文本字段时 网络视图内容将会上升 我怎么能强迫UIView那么也移动吗 您可以订阅UIKeyboardWillShowNotification or the U
  • 强制滚动条到底部

    我正在制作一个运行良好的小型消息 聊天系统 问题是 div 消息输出到的位置不按我需要的方式滚动 所有新消息都会添加到 div 的底部 当添加更多消息并且显示滚动条时 滚动将停留在 div 的顶部 div 我需要将其反转 以便滚动始终粘在底
  • 为什么当我使用扫描仪 sc.nextDouble() 时出现 InputMismatchException

    我想从一个读取数据txt文件 但我得到InputMismatchException当我打电话时nextDouble 方法 即使我正在使用useLocale方法 但是不起作用 txt文件第一行是 1 forname 1 9 public cl