在Java中分割文件输入和格式化输出(家庭作业)

时间:2015-01-27 20:24:20

标签: java string file-io java.util.scanner token

因此,我班级的实验室工作是在一个文本文件中读取一个城市的名称和一些温度在一行(任意数量的行)ex:

蒙哥马利15 9.5 17

并打印名称和温度的平均值。打印出来时,名称必须在行的左侧,并且平均值应该在小数点后面的两位数打印,在行的右侧。我可以假设没有名字是30多个字符,并且平均值可以打印在10个字符宽的字段中(包括小数点)。

这是我到目前为止所拥有的

import java.util.Scanner;
import java.io.*;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Formatter;

public class readFile2
{
    public static void main(String[] args) throws IOException
    {
        FileReader a = new FileReader("places.txt");

        StreamTokenizer b = new StreamTokenizer(a);

        ArrayList<Double> c = new ArrayList<Double>();

        /*System.out.println(
            String.format("%-10s:%10s", "ABCD", "ZYXW")); 
         **I found this to format an output. */

        double count = 0;

        while(b.nextToken() != b.TT_EOF);
        {
            if(b.ttype == b.TT_WORD)
        {
            System.out.print(b.sval);
        }
            if(b.ttype == b.TT_NUMBER)
            {
                c.add(b.nval);
                count ++;
            }

            double totaltemp = 0;                   // I need to figure out how to put
                                                    // this inside of an if statement
            for(int i = 0; i < c.size(); i++)       // that can tell when it reaches
            {                                       // the last number/the end of the line
                totaltemp = c.get(i) + totaltemp;   //
                count++;                            //
            }                                       //
                                                    //
            System.out.print(totaltemp/count);      //
        }
    }
}

第二部分是修改程序,以便cty的名称可以包含多个单词(例如,“纽约”)

我非常感谢任何帮助和建议:)

0 个答案:

没有答案