-4

我正在使用扫描仪实用程序来读取从键盘输入的句子。我想知道如何能够将此字符串文本转换为多行..

例如,如果我要输入

"How are you  doing?" (two spaces between you and doing)

我怎么能把这个打印成多行?

How
are
you

doing?

使用 System.out.println( str.replace (" ", "\n"))解决

谢谢大家。

4

3 回答 3

0

试试下面的代码

public static void main(String[] args) {

        Scanner a = new Scanner(System.in);
        String lines = a.nextLine();
        boolean emptyLine = true;

        for (String line : lines.split(" ")) {
            if (!"".equals(line.trim())) {
                System.out.println(line);
                emptyLine = true;

            } else if (emptyLine) {
                System.out.println();
                emptyLine = false;
            }

        }

    }
于 2013-02-19T08:14:57.360 回答
0

我会这样做:

System.out.println(str.replaceAll(" +", "\n"));

编辑:

计算非空白字符的数量:

int chars = str.replace(" ", "").length();
于 2013-02-19T08:15:49.900 回答
0

首先使用扫描仪进行输入。然后使用 input.split(" ") 拆分输入的行并将其存储到 String 数组中。最后使用循环或 Arrays.tostring() 方法打印数组。

public static void main(String[] args) {
    String s ="How are you   doing?".replaceAll("  +","  ");
    String[] str = s.split(" ");
    System.out.println(str.length);
    for(String temp: str){
        System.out.println(temp);
    }
}

试试这个:如果给定字符串中有两个以上的空格,它将只打印一个空格。

尝试仅使用System.out.println();

System.out.println(string.replaceAll("  +", "  ").replace(" ", "\n"));
于 2013-02-19T08:12:31.257 回答