使用没有数组的toString方法?

时间:2014-05-02 00:02:10

标签: java arrays file methods tostring

所以我试图读取本地.txt文件,然后使用toString方法打印出文件。我必须有两个文件,主要和另一个类。我已经在第二节课中建立了我的toString,现在我尝试在主要课程中调用它。这是示例代码:

public class Hmwk {

    public static void main(String[] args) {
        String fileName = "input.txt";
        File inputFile = new File(fileName);

        try {
            Scanner input = new Scanner(inputFile);
            while(input.hasNextLine()) {

            }
            input.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

public class Locations {
    private String cityName;
    private double latitude;
    private double longitude;

    public Locations(String theCityName, double latitude, double longitude){
        setCityName(theCityName);
        setLat(latitude);
        setLong(longitude);
    }
    public void setCityName(String thecityName) {
        thecityName = cityName.trim();
    }
    public void setLat(double latitude) {
        this.latitude = latitude;
    }
    public void setLong(double longitude) {
        this.longitude = longitude;
    }       
    public String getCityName() {
        return cityName;        
    }
    public double getLatitude() {
        return latitude;
    }
    public double getLongitude() {
        return longitude;
    }

    public String toString() {
        String result = String.format("City: %s (%d , %d )", cityName, latitude,   longitude);
        return result;
    }
}

我的while循环需要读取该行(我也失去了这里)。首先是城市作为一个字符串然后经纬度为双倍。我在这方面绊倒了,因为我需要这样做并使用toString打印出文件。我不知道如何在不使用阵列的情况下做到这一点。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

假设你的文本文件在每一行都有城市信息,这就是你要追求的吗?

while(input.hasNextLine()){

     String cityName = input.next();
     double latitude = input.nextDouble();
     double longitude = input.nextDouble();
     Locations loc = new Locations(cityName, latitude, longitude);

     System.out.println(loc); // automatically calls Locations's toString method
}

答案 1 :(得分:0)

input.nextLine()会返回包含该行的String,然后您可以根据需要将其打印或转换为Locations对象。