在ASU的CSE 205中进行Java分配,我很难理解解析。我浏览了我们的在线教科书,很少进行解析,也从未给出完整的解释。我已经看过几次Java api文档,但我从不理解它在说什么,所以我希望有人不要因为解释如何做而感到沮丧。

该类是:

银行分析器

BankParser类是一个实用程序类,将用于从字符串创建银行对象。 BankParser类无法实例化。它具有以下方法:

公共静态银行bankParser(String lineToParse)

bankParser方法的参数将是以下格式的字符串:

bankName / bankID / city,state

该字符串的真实示例为:

亚利桑那州银行/ 10001 /凤凰城

bankParser方法将解析此字符串,提取信息,创建一个新的bank对象,设置该对象的属性,然后返回它。

到目前为止,这是我的设置:

public class BankParser {

public static Bank bankParser(String lineToParse) {

}

}


另外,在我的Bank类中,我有以下toString方法:

    public String toString() {
    String printInfo = ("\nBank name:\t" + bankName + "\nBank ID:\t" + bankID +     "\nBank address:\t" + bankAddress + "\n");
    return printInfo;


它在eclipse中给了我2个标记:它覆盖了java.lang.Object.toString,并且缺少返回类型。这是什么意思呢??返回类型是String,我看不出问题出在哪里,但是我却毫无头绪

编辑;这是我为bankParser想到的

    public static Bank bankParser(String lineToParse) {
    String[] returnValue = lineToParse.split("/");
    Bank temp = new Bank();
    temp.setbankName(returnValue[0]);
    temp.setbankID(returnValue[1]);
    temp.setbankAddress = (returnValue[2]); //this one won't work, see below
       return temp;
}

}


这些是Bank和Address中适用于bankParser的方法

    public void setBankName(String bank1) {
    bankName = bank1;
}

public void setBankID(String bankID1) {
    bankID = bankID1;
}

public void setBankAddress(String city, String state) {
    bankAddress.setCity(city);
    bankAddress.setState(state);
}


在Address.java中:

    public void setCity(String city1) {
    city = city1;
}

public void setState(String state1) {
    state = state1;
}

最佳答案

您的bankParser方法为空。它需要返回一个Bank对象,Java会抱怨直到您这样做。您一直可以一直将它返回null直到现在,至少可以弄清楚它是一个可编译的存根:

public static Bank bankParser(String lineToParse) {
   Bank returnValue = null;
   // TODO: create a Bank object, assign to returnValue
   return returnValue;
}


至于覆盖位,是否收到错误消息?还是警告?您发布的代码似乎很干净,因此应该进行编译。请显示实际的完整消息。

至于您的实际解析,我将使用String#split("/")将lineToParse拆分为令牌数组,然后使用每个令牌,为Bank构造函数调用创建参数并创建Bank对象。

即显示该概念的代码:

String text = "Bank Arizona/10001/Phoenix,AZ";

String[] tokens = text.split("/");
System.out.println(java.util.Arrays.toString(tokens));

08-04 03:25