2016-04-08 21 views
1

テキストファイルの異なる行を追加しようとしていますが、すべての行が倍精度(一部の行に特殊文字がある)ではなく、すべてのdouble値を加算する必要があります。しかし、私はisDouble方法については、このFileReaderのクラス、インターフェイス、または列挙型が予想される

ERROR:class, interface, or enum expected

を得続けます。どんな助けでも大歓迎です!

import java.util.*; 
import java.io.*; 

public class quiz4 
{ 
    public static void main(String[] args) 
    { 
     File input = new File("mystery.txt"); 
     try 
     { 
      double answer = 0; 
      FileReader fr = new FileReader(input); 
      BufferedReader br = new BufferedReader(fr); 
      String currentLine = br.readLine(); 
      while (currentLine != null) 
      { 
       currentLine = br.readLine(); 
       if (isDouble(currentLine)) 
       { 
        double temp = Double.parseDouble(currentLine); 
        answer = currentLine + temp; 
       } 
       else 
       { 
        continue; 
       } 
      } 
     } 
     catch (Exception e) 
     { 
     } 
    } 

    public static boolean isDouble(String cu) 
    { 
     try 
     { 
      double value = Double.parseDouble(cu); 
      return true; 
     } 
     catch (NumberFormatException e) 
     { 
      return false; 
     } 
    } 
} 
+1

'answer = currentLine + temp;'が間違っています。 'Double'に' String'を代入することはできません。また、ブラケットが多すぎるように見え、クラス内にメソッドがありません。 – 3kings

+6

アンバランスな中括弧のため、あなたの 'isDouble'メソッドはクラスの**外**です。 –

答えて

1

あなたの問題を解決します提案。

その他の回答として、あなたのプログラムにはいくつかの問題があります。

  1. classの最初の文字は大文字である必要があります。
  2. StringDoubleに割り当てることはできません。そのため、不平衡中括弧の
  3. は、あなたのisDoubleメソッドは、クラス

あなたの問題を解決する必要があり、次のコードの外です。

public class Quiz4 { 
     public static void main(String[] args) { 
      File input = new File("mystery.txt"); 
      try { 
       double answer = 0; 
       FileReader fr = new FileReader(input); 
       BufferedReader br = new BufferedReader(fr); 
       String currentLine = br.readLine(); 
       while (currentLine != null) { 
        currentLine = br.readLine(); 
        Double curDouble = tryParseDouble(currentLine); 
        if (curDouble != null) { 
         answer += curDouble; 
        } 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

     public static Double tryParseDouble(String str) { 
      try { 
       return Double.parseDouble(str); 
      } catch (Exception e) { 
       return null; 
      } 

     } 
    } 
0

あなたisDouble(String cu)メソッドは、クラス内ではありません。

catch(Exception e){} 
    } //closing brace for main method 
} //closing brace for the class 
public static boolean isDouble(String cu){ 

ただ、決算括弧は、このメソッドの後にバランスがとれていることを確認してください。

0

これは、彼らはあなたの構文エラーをチェックし、あなたに非常に正確を与えるお手伝いしますまず第一に、私は本当にあなたがEclipseIntelliJ IDEAのようなIDEを使用することをお勧めなど

import java.util.*; 
import java.io.*; 

public class quiz4{ 
    public static void main(String[] args){ 
     File input = new File("mystery.txt"); 
     try{ 
      double answer = 0; 
      FileReader fr = new FileReader(input); 
      BufferedReader br = new BufferedReader(fr); 
      String currentLine = null; 
      while((currentLine = br.readLine()) != null){ 
       if(isDouble(currentLine)){ 
        double temp = Double.parseDouble(currentLine); 
        answer = Double.parseDouble(currentLine) + temp; 
       } 
       else{ 
        continue; 
       } 
      } 
     }catch(Exception e){ 

     } 
    } 

     public static boolean isDouble(String cu){ 
      try { 
      double value = Double.parseDouble(cu); 
      return true; 
     } catch (NumberFormatException e) { 
      return false; 
     } 
    } 

} 
関連する問題