gpt4 book ai didi

Java - 从名称和地址的 ArrayList 返回 "address"

转载 作者:行者123 更新时间:2023-11-30 02:37:10 25 4
gpt4 key购买 nike

我一整天都在研究这个 AP 问题,但没有运气。如果有人可以提供帮助,我们将不胜感激。

我有一个由名称和地址组成的StringsArrayList。地址后面有一个空的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 类中。它有一个假定的构造函数,并且我在类中编写了其他方法。我已经编辑了类(class)。我的逻辑有问题。

Worksheet 说:编写 Recipients 类的 getAddress 方法。此方法应返回一个字符串,其中仅包含相应名称参数的地址。例如,如果名称是“Jack S. Smith”,则应返回包含其地址的后续三行的字符串。该字符串应在适当的位置包含换行符,包括在地址的最后一行之后。

public String getAddress(String name)

最佳答案

您应该创建用于保存姓名和地址的类。请查找下面提到的方法。

package hello;

import java.util.ArrayList;
import java.util.List;

class Employee {

private String name;
private String address;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

}

public class So3 {

public static void main(String[] args) {
List<String> lines = new ArrayList<String>();
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("");

List<Employee> employees = new ArrayList<Employee>();
Employee employee = new Employee();
for (String str : lines) {
if (str.isEmpty()) {
if (employee.getName() != null && employee.getAddress() != null) {
employees.add(employee);
employee = new Employee();
}
} else if (employee.getName() == null) {
employee.setName(str);
} else {
if (employee.getAddress() == null) {
employee.setAddress(str);
} else {
employee.setAddress(employee.getAddress() + " " + str);
}
}
}

if (employee.getName() != null && employee.getAddress() != null) {
employees.add(employee);
}

System.out.println(getAddress(employees, "Ms. M.K. Delgado"));

}

private static String getAddress(List<Employee> employees, String name) {
if (employees != null && name != null) {
for (Employee employee : employees) {
if (name.equals(employee.getName())) {
return employee.getAddress();
}
}
}
return null;
}

}

关于Java - 从名称和地址的 ArrayList 返回 "address",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com