gpt4 book ai didi

java - Java 中类的问题

转载 作者:行者123 更新时间:2023-12-01 06:43:56 24 4
gpt4 key购买 nike

public class Location {
private String city;
private double latitude;
private double longitude;

public Location(String aCity, double aLatitude, double aLongitude)
{
city = aCity;
latitude = aLatitude;
longitude = aLongitude;
}
void setLocation(String theCity)
{
city = theCity.trim();
}
void setLatitude(double lat)
{
latitude = lat;
}
void setLongitude(double long1)
{
longitude = long1;
}
public String getLocation()
{
return city;
}
public double getLatitude()
{
return latitude;
}
public double getLongitude()
{
return longitude;
}
public String tooString()
{
String result = String.format("City: %s (%1.3f; %1.3f)", city, latitude,longitude);
return result;
}

主程序:

public class Hmwk {

public static void main(String[] args) throws FileNotFoundException {
Scanner input=new Scanner (new File ("input.txt"));
while (input.hasNextLine())
{
String line=input.nextLine();
String[] tokens;
tokens = line.split("\t");
String city=tokens[0];
double lat=Double.parseDouble(tokens[1]);
double longy=Double.parseDouble(tokens[2]); //Error
Location loc=new Location(city,lat,longy);
loc.tooString();

}


}

我在主程序中发现了一个我不太明白的ArrayIndexOutOfBoundsException

输入按制表符划分,即使看起来不像......

St. Joseph, MO  +39.76580   -94.85060
Shanghai,China +31.23300 +121.45000
Kansas_City,KS +39.11780 -94.64000

最佳答案

这是一个工作示例,您的问题来自 input.txt 文件。如果缺少其中一个制表符 (\t)(而是输入错误的空格),则 split() 将返回少于 3 的元素。

1- 进行测试以检查是否确实有 3 个元素:

if (tokens.length >= 3) {
String city=tokens[0];
double lat=Double.parseDouble(tokens[1]);
...
}

2- 检查您的 input.txt 文件是否有空格或缺少制表符。

3- 您应该在类中使用 toString() 而不是 toString()。这个方法就是为了这个目的:)

工薪阶层:

public class Hmwk {
public static void main(String[] args) throws FileNotFoundException {
Scanner input=new Scanner (new File ("input.txt"));
while (input.hasNextLine())
{
String line=input.nextLine();
String[] tokens = line.split("\t");
if (tokens.length >= 3) {
String city=tokens[0];
double lat=Double.parseDouble(tokens[1]);
double longy=Double.parseDouble(tokens[2]);
Location loc=new Location(city,lat,longy);
System.out.println(loc.toString());
}
}
input.close();
}

}

关于java - Java 中类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com