try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the continent;");
String CN = in.readLine();
String MaxDate="1";
for(Earthquakerecd e : eqList)
{
if( e.getContinent().equals("CN"))
{
MaxDate=e.getDate();
}
{
System.out.println( e.toString());
}
}
System.out.println( MaxDate);
}
catch (IOException e)
{
System.out.println("IOException has been caught");
}
我认为这是一个简单的问题。在此问题中,Maxdate声明为1. CN是大陆的字符串。如果用户输入与大陆匹配,则日期应从e.getDate()传递到Maxdate。在任何情况下,我们都不应该将输出视为1,它应该是来自对象e的某个日期。 Maxdate我总是得到1分。任何可能的解决方我的语法是对的吗?
答案 0 :(得分:7)
似乎你想要:
if(e.getContinent().equals(CN))
现在你正在与字符串文字“CN”进行比较。您没有将变量CN
用于任何事情。
我假设您打算在else
声明后插入if
?
此外,在Java中,通常不使用大写字母开始变量名称(将字符串命名为cn
而不是CN
)。
答案 1 :(得分:1)
尝试这样做:
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the continent;");
String CN = in.readLine();
String MaxDate="1";
for(Earthquakerecd e : eqList)
{
if( e.getContinent().equals(CN)) //When you put it with "" the continent value was compared to CN and not from the user input
{
MaxDate=e.getDate();
}
{
System.out.println( e.toString());
}
}
System.out.println( MaxDate);
}
catch (IOException e)
{
System.out.println("IOException has been caught");
}
如果这不起作用,那么尝试以这种方式执行for:
for (int i=0; i<eqList.size(); i++) {
Earthquakerecd e = eqList.get(i);
//... code ... //
}