gpt4 book ai didi

java - 如何编写一个方法,将单词向后存储在从用户输入接收到的数组列表中,直到输入 "done"?

转载 作者:行者123 更新时间:2023-11-30 05:56:39 26 4
gpt4 key购买 nike

编写一个方法,连续读取用户的单词,直到输入的单词“完成”为止,并将每个单词按输入顺序反向拼写存储在 ArrayList 中。

这是我到目前为止的代码,但每当我尝试在主类中调用它时,它总是失败。有人可以帮帮我吗?我已经包含了创建方法的类和调用该方法的主类。我无法组合这两个类,因此我需要能够从主类中的 todo 调用该对象。提前致谢!

示例输入:香蕉赛车小狗完成生成的 ArrayList: ananab racecar yppup

import java.util.Scanner;
import java.util.ArrayList;

public class todo extends main{


public ArrayList <String>storeBackwards (Scanner keyboard) {
ArrayList<String> words=new ArrayList ();
ArrayList<String> backwards=new ArrayList();

String input=keyboard.next();
while(!input.equalsIgnoreCase("done")) {
words.add(input);
String get="";
String back="";
for(int i=0; i<words.size();++i) {
get=words.get(i);
for(i=get.length()-1; i>=0; i--) {
back=back+get.charAt(i); }
backwards.add(back);
}

}
return backwards;


}
}

这是主类

import java.util.Scanner;
public class main {

public static void main(String[] args) {
Scanner keyboard=new Scanner(System.in);
todo x=new todo();

x.storeBackwards(keyboard);


}

}

最佳答案

在您的代码String input=keyboard.next();中,您仅调用keyboard.next()一次。因此,在读取第一个标记后,字符串变量 input 的值保持不变。

因此它会导致无限循环,这就是您收到异常的原因

两个 for 循环中使用的循环变量都是 int i嵌套 for 循环使用不同的变量,如 int j

for(int j=get.length()-1; j>=0; j--) {
返回=返回+get.charAt(j);
}

修改您的代码如下,您的测试用例已清除

    public List<String> storeBackwards (Scanner keyboard) {
ArrayList<String> backwards=new ArrayList<String>();
String input=keyboard.next();
while(!input.equalsIgnoreCase("done")) {
String back="";
for(int j=input.length()-1; j>=0; j--) {
back=back+input.charAt(j);
}
backwards.add(back);
back="";
input=keyboard.next();
}
return backwards;

}

关于java - 如何编写一个方法,将单词向后存储在从用户输入接收到的数组列表中,直到输入 "done"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53057735/

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