数组是在单独的行上打印一个单词的每个字母,如何修复?

时间:2018-01-24 22:59:42

标签: java arrays

我目前正在为学校分配工作,目标是让用户输入n行数,然后反向打印。

例如:

"Please enter number of lines: "
3
"Please enter the lines: "
Hi
Hey
Howdy

期望的输出:

Howdy
Hey
Hi

我的输出:

H
o
w
d
y
H
e
y
H
i

我不确定是什么错,我真的很喜欢一些帮助,这是我的代码:

import java.util.Scanner;
public class ReverseOrder {

public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    System.out.println("Please enter the number of lines: ");
    int numberOfLines = kb.nextInt() + 1;

    String inputLines[] = new String[numberOfLines];
    System.out.println("Please enter the lines: ");

    for (int i = 0; i < numberOfLines; i++) {
        inputLines[i] = kb.nextLine();
    }

    System.out.println("Lines in reverse: ");

    for (int i = numberOfLines - 1; i >= 0; i--) {
        for (int j = 0; j <= inputLines[i].length() - 1; j++) {
            System.out.println(inputLines[i].charAt(j));
        }
    }
    kb.close();
}

2 个答案:

答案 0 :(得分:2)

您正在使用当前的两个for循环调用println()来打印带有行尾字符的每个字符。这是一个太多的步骤。

由于您已经拥有整个字符串,因此可以使用println()函数以相反的顺序打印字符串

for(int i = numberOfLines - 1 ; i>=0; i--){
    System.out.println(inputLines[i]);         
}

答案 1 :(得分:1)

@Kody

我不确定您在代码中需要做什么,但是:

如果您只需要以相反的顺序打印每一行,您可以这样做:

System.out.println("Lines in reverse: ");

for (int i = numberOfLines - 1; i >= 0; i--) {
    System.out.println(inputLines[i]);
}

方法 println 会为您创建一个新行。