1

テキスト ファイルを分割する方法を教えてください。

テキストファイルに次のような行があるとします:

ジキル 23.3 33.3 43.2

カーキ 32.5 54.3 43.2

.....

これまでのところ、私のコードではこれがあります:

while(scan.hasNext())
     {

          String line = scan.nextLine(); 
          String[] words = .split(" ");

          for(int i = 1; i < words.length - 1; i++)
              System.out.println(words[i]);

編集

これが印刷されました。私の目標は、すべての数値を合計して平均を作成することです。ここで何をする必要があるのか​​ に行き詰まっています

コード全体を編集します。

import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;

public class TemperaturesWeek2
{
    public static void main( String [] args ) throws IOException
    {
        int count=0;
        double averageTemp;
        int averageAbove;
        double highestAverage;

        File inputFile = new File (
                         "C:/Users/Phillip/Documents/Temp/temperatures.txt .txt");
        Scanner scan = new Scanner(inputFile);

        while(scan.hasNext()) {

            String words = scan.next();

            double num1 = scan.nextDouble();
            double num2 = scan.nextDouble();
            double num3 = scan.nextDouble();
            double num4 = scan.nextDouble();
            double num5 = scan.nextDouble();
            double num6 = scan.nextDouble();
            double num7 = scan.nextDouble();

            double average = (num1 + num2 + num3+ num4+ num5+ num6+ num7) / 7;

            System.out.println(words);
            System.out.println("average is : " + average);
        } 
    }
}
}
4

4 に答える 4

2

最初に文字列を取得する必要があります。そして、それを分割/解析する必要があります。したがって、ファイルを 1 行ずつ読みたい場合は、次のようになります。

while(scan.hasNext())
{
    String line = scan.nextLine(); // "Read" your file (one line at a time).
    System.out.println(line); // Test what you read.
    String[] words = line.split(" "); // Parse what you read.

    for(int i = 1; i < words.length; i++){
        System.out.println(words[i]);
    }
}
于 2013-11-13T00:21:30.973 に答える
2

これを試して

while(scan.hasNext()) {

    String line = scan.nextLine(); 
    String[] words = .split(" ");

    double num1 = Double.parseDouble(words[1]);
    double num2 = Double.parseDouble(words[2]);
    double num3 = Double.parseDouble(words[3]);

    double average = (num1 + num1 + num3) / 3;

    System.out.println(line);
    System.out.println("average is : " + average);
}

編集: nextDouble() を使用

while(scan.hasNext()) {

    String words = acan.next();

    double num1 = scan.nextDouble();
    double num2 = scan.nextDouble();
    double num3 = scan.nextDouble();

    double average = (num1 + num1 + num3) / 3;

    System.out.println(word);
    System.out.println("average is : " + average);

    scan.nextLine();
    // add another scan.nextLine() if you have line spaces between your lines
    scan.nextLine() // only if necessary
}
于 2013-11-13T01:19:53.423 に答える
1

疑似コード

テキスト ファイルの各行を解析します。

解析された項目が int かどうかを確認します int の場合は配列に入れます スキャンされた次の文字が空白の場合は、配列を次の位置にインクリメントします ファイルが空になるまで実行します

次に、単純な for ループで配列の内容を追加します。

于 2013-11-13T00:31:20.353 に答える