如何将银行信息解析为特定格式,以及Java问题



在ASU的CSE 205中进行Java分配,我很难理解解析。我已经浏览了我们的在线教科书,而解析很少出现,并且从未得到完整的解释。我已经浏览了Java API文档几次,但我从不理解它在说什么,所以我希望有人不会太沮丧,无法解释如何做。

类是:

bankparser

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

公共静态银行银行帕克尔(String LineToparse)

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

银行/银行/城市,州

这个字符串的真实示例是:

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

BankParser方法将解析此字符串,拔出信息,创建新的银行对象,设置对象的属性并返回。

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

public class BankParser {
public static Bank bankParser(String lineToParse) {
}
}

另外,在我的银行课程中,我有这种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,而返回类型丢失了。这是什么意思呢??返回类型是字符串,我看不出这是什么问题,但是我无知的替代

编辑;这就是我为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;
}
}

这些是银行中的方法,地址适用于银行帕克瑟

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

在地址:java:

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

我将使用诸如Apache Common CSV之类的库进行阅读和写作。

Reader in = new StringReader("bankName/bankID/city,state");
Iterable<CSVRecord> parser = CSVFormat.newBuilder()
     .withDelimiter('/')
     .parse(in);
for (CSVRecord csvRecord : parse) {
     ...
}

您的bankparser方法是空的。它需要返回银行对象,而Java将抱怨,直到您执行此操作。您可以始终将其返回null现在,至少使其成为一个可编译的存根,您可以弄清楚这一点:

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

至于您的替补位,您是否收到错误消息?还是警告?您发布的代码似乎犹太洁食,因此应该编译。请显示实际的完整消息。

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

即,代码以显示概念:

String text = "Bank Arizona/10001/Phoenix,AZ";
String[] tokens = text.split("/");
System.out.println(java.util.Arrays.toString(tokens));

最新更新