2014-11-11 2 views
-3

Мне нужно использовать файл .txt, чтобы вычитать следующий код из текстового файла. У меня возникли проблемы с использованием сканера в файле. b.txt имеет следующий ввод текста в нем:Как выполнить код из txt-файла

40,3 35,8 29,6 45 17,8 19,2 38,6 31,5 27,8 39,9 ...

Может кто-нибудь пожалуйста, помогите мне решить эту проблему?

import java.util.*; 
    public class arrayLabFirst 
    { 

    public static void main(String[] args) 
    { 
    double[ ] temperatures = new double[10]; 
    Scanner inFile = new Scanner(new File(“b.txt”)); 

    temeratures[]=infile.hasNext(); 


    for (int index = 0; index < temperatures.length; index++) 
    temperatures[index] = input.nextDouble(); 

    printArray(temperatures); 
    System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures)); 
    System.out.println("The greatest temperature is: " + greatest(temperatures)); 
    System.out.println("The lowest temperature is: " + lowest(temperatures)); 
    } 
    public static void printArray(double[] temperatures) 
    { 
    for (int i = 0; i < temperatures.length; i++) 
    System.out.println(temperatures[i]); 
    } 
    public static double arrayAverage(double[] temperatures) 
    { 
    double sum = 0; 
    for (int i = 0; i < temperatures.length; i++) 
    sum += temperatures[i]; 
    return sum/temperatures.length; 
    } 
    public static void countDays(double[] temperatures) 
    { 
    int aboveCount = 0; 
    int belowCount = 0; 
    for (int i = 0; i < temperatures.length; i++) 
    { 
    if (i > 32) 
    aboveCount++; 
    else 
    belowCount++; 
    } 
System.out.println("number of days above freezing: " + aboveCount); 
System.out.println("number of days below freezing: " + belowCount); 
} 
public static double greatest(double[] temperatures) 
{ 
int maxIndex = 0; 
for (int index = 1; index < temperatures.length; index++) 
    if (temperatures[maxIndex] < temperatures[index]) 
    maxIndex = index; 

return temperatures[maxIndex]; 
} 
public static double lowest(double[] temperatures) 
{ 
    int minIndex = 0; 
    for (int index = 1; index < temperatures.length; index++) 
    if (temperatures[minIndex] > temperatures[index]) 
    minIndex = index; 

    return temperatures[minIndex]; 
} 
} 
+0

u необходимо прочитать текст из текстового файла, а затем выполнить u. но перед этим покажем образец вашего текстового файла. – Krishna

+0

почему вы думаете, что 'temeratures [] = infile.hasNext();' будет работать? –

+0

40,3 35,8 29,6 45 17,8 19,2 38,6 31,5 27,8 39,9 – Sam

ответ

1

Я не совсем понимаю всю негативность, но позвольте мне быстро объяснить, о чем они говорят. Вы используете метод hasNext() по адресу inFile, который возвращает логическое значение относительно того, имеет ли значение «следующее». В этом случае он проверяет наличие следующего двойника. Проблема заключалась в том, что вы присваивали массив двоев к этому логическому значению, которое вы не можете сделать.

Вот что я должен работать, используя ваш код;

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.*; 
public class arrayLabFirst 
{ 
    public static void main(String[] args) throws FileNotFoundException 
    { 
     double[ ] temperatures = new double[10]; 
     Scanner inFile = new Scanner(new File("data.txt")); 
     for (int index = 0; index < temperatures.length; index++) 
      if(inFile.hasNext()) 
       temperatures[index] = inFile.nextDouble(); 
      else 
       continue; 

     printArray(temperatures); 
     System.out.println("The average of the temperatures entered is: " + arrayAverage(temperatures)); 
     System.out.println("The greatest temperature is: " + greatest(temperatures)); 
     System.out.println("The lowest temperature is: " + lowest(temperatures)); 

     inFile.close(); 
    } 
    public static void printArray(double[] temperatures) 
    { 
     System.out.print("Input Array:\n["); 
     for (int i = 0; i < temperatures.length; i++) 
     { 
      System.out.print(temperatures[i]); 
      if(i < temperatures.length - 1) 
      { 
       System.out.print(", "); 
      } 
     } 
     System.out.println("]\n"); 
    } 
    public static double arrayAverage(double[] temperatures) 
    { 
     double sum = 0; 
     for (int i = 0; i < temperatures.length; i++) 
      sum += temperatures[i]; 
     return sum/temperatures.length; 
    } 
    public static void countDays(double[] temperatures) 
    { 
     int aboveCount = 0; 
     int belowCount = 0; 
     for (int i = 0; i < temperatures.length; i++) 
     { 
      if (i > 32) 
       aboveCount++; 
      else 
       belowCount++; 
     } 
     System.out.println("number of days above freezing: " + aboveCount); 
     System.out.println("number of days below freezing: " + belowCount); 
    } 
    public static double greatest(double[] temperatures) 
    { 
     int maxIndex = 0; 
     for (int index = 1; index < temperatures.length; index++) 
      if (temperatures[maxIndex] < temperatures[index]) 
       maxIndex = index; 

     return temperatures[maxIndex]; 
    } 
    public static double lowest(double[] temperatures) 
    { 
     int minIndex = 0; 
     for (int index = 1; index < temperatures.length; index++) 
      if (temperatures[minIndex] > temperatures[index]) 
       minIndex = index;   

     return temperatures[minIndex]; 
    } 
} 
Смежные вопросы