将值从对象字符串传递到字符串

时间:2012-02-07 23:02:57

标签: java arrays

 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分。任何可能的解决方我的语法是对的吗?

2 个答案:

答案 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 ... //
}