【发布时间】:2017-03-12 04:26:37
【问题描述】:
我整天都在处理这个 AP 问题,但没有运气。如果有人可以提供帮助,将不胜感激。
我有一个由名称和地址组成的Strings 中的ArrayList。在地址之后,有一个空的String 并且下一个名称开始。 getAddress 方法接受一个字符串参数(一个名称)并返回人员的地址(名称后面的行包括空字符串,但停在那里)。我在编写此方法时遇到问题。
import java.util.ArrayList;
public class Recipients {
ArrayList<String> lines = new ArrayList<String>();
public String extractCity(String cityZip) {
int pos = cityZip.indexOf(",");
return cityZip.substring(0, pos);
}
public void printNames() {
System.out.println(lines.get(0));
for (int i = 0; i < lines.size()-1; i++)
if (lines.get(i).substring(0, lines.get(i).length()).equals(""))
System.out.println(lines.get(i+1));
}
public String getAddress(String name) {
String address = "";
int ct = 0;
int place = 0;
for (int i = 0; i < lines.size(); i++) {
if (lines.get(i).substring(0, lines.get(i).length()).equals(name)) {
place = i;
for (int j = i+1; j < lines.size(); j++) {
ct = j;
if (!lines.get(i).substring(0, lines.get(i).length()).equals("")) {
ct++;
}
}
for (int k = place; k < ct; k++) {
address = address + lines.get(i);
}
}
}
return address;
}
public void main() {
lines.add("Mr. J Adams");
lines.add("Rose St.");
lines.add("Ithaca, NY 14850");
lines.add("");
lines.add("Jack S. Smith");
lines.add("12 Posy Way");
lines.add("Suite #201");
lines.add("Glendale, CA 91203");
lines.add("");
lines.add("Ms. M.K. Delgado");
lines.add("2 River Dr.");
lines.add("");
System.out.println(getAddress("Jack S. Smith"));
System.out.println("test line break");
}
}
感谢您的宝贵时间。
编辑:这个方法应该写在 Recipients 类中。它有一个假定的构造函数,我在类中编写了其他方法。我已经编辑了课程。我的逻辑有问题。
Worksheet 说:编写 Recipients 类的 getAddress 方法。此方法应返回一个字符串,该字符串仅包含相应名称参数的地址。例如,如果 name 是“Jack S. Smith”,则应返回包含其地址后面三行的字符串。此字符串应在适当的位置包含换行符,包括地址的最后一行之后。
public String getAddress(String name)
【问题讨论】:
-
我建议创建一个单独保存每个字段的类。
-
另外,这段代码能编译运行吗?我看到您有一个名为
main()的函数,但是如果您想将其用作代码的入口点是不正确的。 -
@Code-Apprentice 他试图展示他的代码的最小示例。请看stackoverflow.com/help/mcve(;
-
@NickZiebert 我非常了解 MCVE 是什么。如果您查看我个人资料中的评论历史记录,您会看到我要求的频率。
-
@NickZiebert Internet 倾向于定期丢弃讽刺包。