打印字符串来自不同文件的双精度和整数

时间:2018-02-17 03:45:45

标签: java while-loop java.util.scanner token java-io

所以我是java的新手,我必须从文件中读取字符串,双精度和整数,然后将其打印出来。这是java向我抛出的错误:

  

错误:此处不允许变量声明Scanner file = new   扫描器(线);

这是什么意思?

2 个答案:

答案 0 :(得分:0)

Scanner file = new Scanner(line);

失败,因为名为file的变量已在上面声明...

Scanner file = new Scanner(data);

为其中一个扫描程序变量指定一个不同的名称。您的代码还存在其他一些问题,但我认为这是一项学校作业,所以只回答了您提出的问题。

答案 1 :(得分:0)

 BufferedReader br = null;
    try {
        br = new BufferedReader(new FileReader("test.txt"));
        String line;
        while ((line = br.readLine()) != null) {

            String[] splited = line.split(" ");
            for (String st: splited) {

                if(isInteger(st))
                    System.out.println("---int--->"+st);
                else  if(isDouble(st))
                    System.out.println("---dubl--->"+st);
                else if (!st.isEmpty())
                    System.out.println("---String--->"+st);




            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (br != null) {
                br.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
          }
        }

    }

   private static boolean isInteger(String st) {
      try {
         Integer.parseInt(st);
         return true;
       } catch (NumberFormatException e) {
        return false;
     }
   }

   static boolean isDouble(String str) {
      try {
         Float.parseFloat(str);
         return true;
      } catch (NumberFormatException e) {
          return false;
      }
    }


   This Maybe help you