从混合文件中读取双数

问题描述

这是一个工作测试

    Scanner sc = new Scanner("aaaa 1.1 bbb\n3");
    sc.useLocale(Locale.US);
    while (sc.hasNext()) {
        if (sc.hasNextDouble()) {
            System.out.println(sc.nextDouble());
        } else {
            sc.next();
        }
    }

请注意,我使用了美国语言环境,以使扫描仪插入“。”作为小数点分隔符,在我的语言环境(默认)中为“,”。另请注意,nextDouble可以识别1.1和3(整数)

解决方法

尝试仅在文件包含数字和单词的地方读取双数字。到目前为止,我已经完成的代码可以从文件中正确读取并打印带有数字和单词的完整列表。不知道如何排除单词并打印只读的双精度数字。

 public void doubleFromFile()
 {
              Scanner scan = new Scanner(System.in);

     Scanner fileScan;
     boolean validName = false;
    double num = 0.0;

     do
     {

         System.out.print("Enter file name: ");
         String str = scan.nextLine();

        try 
        {

            fileScan = new Scanner(new File(str));
            validName = true;

        while(fileScan.hasNextLine())
        {

            try
            {

            str = fileScan.nextLine();
            num = Double.parseDouble(str);

      System.out.println(str);
            }
             catch (NumberFormatException nfe) 
             {
                System.out.println("is not a Double number");
             }   


        }//end while

        }// end try



         catch (FileNotFoundException fnfe)
           {
              System.out.println("Invalid File name: enter again");
           }

     }while(!validName);

  }//end doubleFromFile method

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”