这是我正在做的课堂实验。这是说明:编写一个程序,它接受一行文本作为输入,然后反向输出这行文本。程序重复,当用户为这行文本输入“完成”、“完成”或“d”时结束。
例如:如果输入为:
“你好啊
喂
完成”
输出为:
“埃雷特奥莱
是的”
这是我现在所拥有的
public class LabProgram {
public static void main(String[] args) {
/* Type your code here. */
Scanner scnr = new Scanner(System.in);
String[] inputs = new String[100];
String input;
int i = 0;
while (true) {
input = scnr.nextLine();
if(input.equals("Done") || input.equals("done") || input.equals("d"))
break;
inputs[i] = input;
i++;
}
for (int j = 0; j < i; j++) {
int length = inputs[j].length();
String reverse = "";
for (int k = length - i; k >= 0; k--) {
reverse = reverse + inputs[j].charAt(k);
}
System.out.print("\n" + reverse);
}
}
}
Current output
我到底做错了什么?
5条答案
按热度按时间kzmpq1sx1#
遍历数组,并在每个索引处反转元素。这个解决方案很耗时,但可以完成您的工作
lf5gs5x22#
为了补充Artur所说的,StringBuilder的ArrayList可以很好地完成这个任务:
增强的for循环将遍历ArrayList中的每个条目,而StringBuilder的反向操作将更改字母的顺序。
编辑以显示格式
*注意。考虑到这是一个实验,它可能是为了学习的目的,使用内置的类来为你做所有的工作通常不是预期的解决方案。-- @experiment unit 1998 X
v7pvogib3#
尝试使用StringBuilder并使用方法反转
b1payxdu4#
这是另一个“ArrayList和StringBuilder-less”版本。创建两个String,一个填充,一个空:
循环遍历String的长度,每次到时从末尾添加中的下一个字符。
将整个String添加到String数组的索引中
注
这是String数组的内部循环,不是完整的代码
v09wglhw5#
您的打印行只需要反转 * 系统输出打印(reverse +“\n”);*
您有 * 系统输出打印(“\n”+反向);*