-2

テキストファイル(myfile.txt)の番号は次のとおりです。

6
19
20
23
34
45
47
51
54
56
61
70
72
76
90
93
94
96
105
111

このテキストファイルをJavaで文字列トークンとして読み取って印刷できます。コードは次のとおりです。

                      File fileName = new File("myfile.txt");         
                      Scanner inFile = new Scanner(fileName);        
                      while (inFile.hasNext())         
                      {         
                      token = inFile.next( ); 

                      System.out.println(token);

                      } 

                    inFile.close();

では、Javaでこれらの数値の合計を取得するにはどうすればよいですか?つまり、SUM(6 + 19 + 20 + 23 + .......... + 111)

4

4 に答える 4

3

int変数sumを使用し、を使用して数値scanner.nextInt()を抽出します。繰り返しごとに加算を行います。

                      File fileName = new File("myfile.txt");         
                      Scanner inFile = new Scanner(fileName);
                       int sum=0;        
                      while (inFile.hasNext())         
                      {         
                           sum+= inFile.nextInt( );     
                      } 
                      System.out.println(sum);

                    inFile.close();
于 2012-11-18T19:40:53.153 に答える
1

Integer.parseIntメソッドを使用して文字列をintに変換できます。そして、sumwhileの外で宣言する必要がある変数にそれを追加します。

Scanner inFile = new Scanner(fileName);        
int sum = 0;
while (inFile.hasNext()) {         
    token = inFile.next( ); 

    System.out.println(token);
    sum += Integer.parseInt(token);

} 

inFile.nextInt()整数値を読み取る場合は、使用する方が適切なオプションです。そしてinFile.hasNextInt()、whileループで使用します。

于 2012-11-18T19:40:53.027 に答える
0

nextInt()まず、Scannerクラスを使用して整数をに読み込みますList。次に、「拡張」forループを使用して、これらの各番号をリストに追加します

于 2012-11-18T19:41:57.270 に答える
0

だから私は自分の問題を理解して成功しましたが、それでも、teranary演算子を使用してこの構文を単純化できるかどうか、そしてどのようにすればよいかについて、誰かの意見を求めています。

import java.util.Scanner;
import java.io.*;
public class Midterm
{
    public static void main(String[]args) throws Exception
    {
     final String FILE = "integers.txt";
     final String RELATIVE_DIRECTORY_FILE = "integers.txt ";
    int positiveNumberCount = 0,
    negativeNumberCount = 0;
    String dataItem;
    double sum = 0;
    double sumForAverage = 0;
    double average = 0;

    File inputFile = new File(RELATIVE_DIRECTORY_FILE);
    if(!inputFile.exists())
    {
        System.out.printf("%n%s%s%s", "The file, ",   RELATIVE_DIRECTORY_FILE, " does not exist");
    }

    if(inputFile.exists())
    {
        System.out.printf("%s%s%s", "The file ", RELATIVE_DIRECTORY_FILE,       "was found");
        Scanner file = new Scanner(inputFile);
        //***if i need to use a delimiter *****
        //file.useDelimiter(",") where in between " "  is my type of delimiter
        while(file.hasNext())
        {



            dataItem = file.nextLine();

            double numericalDataItem = Double.parseDouble(dataItem);

            boolean isPositive = false;
            boolean isNegative = false;

            if(numericalDataItem > 0)
            {
                isPositive = true;
                positiveNumberCount++;
            }
            else if(numericalDataItem < 0)
            {
                isNegative = true;
                negativeNumberCount++;
            }

            sum += Double.parseDouble(dataItem);
            sumForAverage = positiveNumberCount + negativeNumberCount;
            average = sum/sumForAverage;

        } 
        System.out.printf("%n%s%d%n%s%d%n%s%.2f%n%s%.2f", "Positive Number Count: ", positiveNumberCount,
        "Negative Number Count: ", negativeNumberCount, "Sum Of Numbers: ", sum, "Average of Numbers: ", average);
    }
}
}
于 2016-10-21T00:03:09.587 に答える