在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));