gpt4 book ai didi

java - 在堆栈中搜索按字母顺序排在第一位的名称

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

我是编程新手,所以如果这个问题很简单,请接受我的歉意。

我的老师希望我们创建一个方法,在堆栈中搜索按字母顺序排在第一位的名称并返回它

例如:如果我的堆栈中有这些名称:

泰格·伍兹、 jack ·尼古拉斯、阿诺·帕尔默、 jack ·尼古拉斯、吉米·德梅里特、 jack ·尼古拉斯、萨姆·斯尼德、吉米·德梅里特、本·霍根、沃尔特·哈根、汤米·阿莫、鲍比·琼斯

该方法应返回 Arnold Palmer

这是我的代码:

public String findFirst() {
System.out.println("findFirst" );

Stack<String>temp = new Stack<String>();

char letter = 'A';
String name = null;

while(!names.isEmpty()) {
name = names.peek();

if(name.charAt(0) == letter) {
temp.push(name);
name = names.peek();
} else {
temp.push(name);
names.pop();
}
}

while(!temp.isEmpty()) {
names.push(temp.pop());
}

return name;
}

程序进入无限循环

请帮助我,因为我需要知道如何修复我的程序

提前谢谢

最佳答案

对于无限循环:当您测试 name.charAt(0) == letter 时,如果这是真的,您不会从 names 堆栈中弹出,因此您将继续运行到该实例(并不断插入 temp)。

请注意,仅修复此问题不会使其按照您想要的方式工作。例如,您应该会发现您从未更新letter的值,这很可疑。

此外,您不应该指望仅查看第一个字母就足够了。如果要比较两个字符串的字母顺序,可以在 String 上使用 .compareTo 方法。

关于java - 在堆栈中搜索按字母顺序排在第一位的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8919839/

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