gpt4 book ai didi

java - 返回所有值的问题

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:12 25 4
gpt4 key购买 nike

我在尝试返回 Register 类中的所有值时遇到问题。目前它只返回 BLOGGS, J,但也应该返回 JONES, F 和 SINGH, N。预先感谢您。

public static String execute(Register reg, Name n) {
reg.removeName(1);
reg.addName(n);
for (Name nm : reg) {
if(nm.getFamilyName().length() >= 5) {
return (nm.getFamilyName().toUpperCase() + ", " + nm.getFirstName().charAt(0) + "\n");
}
return null;
}
}

这是 jUnit 测试的测试代码

@Test
public void testExecute() {
Register r = new Register();
r.addName(new Name("Joe", "Bloggs"));
r.addName(new Name("Fred", "Jones"));
r.addName(new Name("Nila", "Singh"));

String result = RegisterApp.execute(r, new Name("Cassie", "Downturn"));

String expectedResult = "BLOGGS, J\nSINGH, N\nDOWNTURN, C\n";

assertEquals("The string returned should match the expected result (run 1)", expectedResult, result);
}

最佳答案

正如@Carcigenicate 已经指出的那样,您将立即从 for 循环返回。

您可以在此处利用流 api:

public static String execute(Register reg, Name n) {
reg.removeName(1);
reg.addName(n);

return
reg.stream()
.filter(nm -> nm.getFamilyName().length() >= 5)
.map(nm -> nm.getFamilyName().toUpperCase() + ", " + nm.getFirstName().charAt(0) + "\n")
.collect(Collectors.joining());

}

关于java - 返回所有值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54114941/

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