如何使其顺序

时间:2019-04-12 20:30:41

标签: java printf vertical-alignment

{php}
$array  = explode(' ', $string);
$result = implode(' ', array_merge(array_splice($array, 0, 4), [$keyword], $array));
{/php}

我想这样显示数字(1234)

public static void verticalNumber(int n) {
    while (n > 0) {
        n /= 10;
        System.out.printf("%d\n", n % 10);

    }
    System.out.printf("\n");
}

public static void main(String[] args) {
    verticalNumber(1234);
}

4 个答案:

答案 0 :(得分:1)

您正在朝正确的方向前进。但是,如果您在打印前进行n/=10,则已经丢失了最后一位(1234将变为123),而下一行将打印3

如果同时翻转两行,则将垂直打印它。但是,它将是颠倒的。然后,您可以旋转显示器以正确的顺序观看(开个玩笑)。

我能想到的最简单的方法是将n%10结果放入列表中,然后添加另一个循环以反向打印它。

答案 1 :(得分:0)

创建一个列表,当ur的数字不为0时;向其添加数字mod 10,数字变为div 10的数字,最终,您将拥有一个按以下顺序包含ur的列表4,3,2,1,从列表的大小开始使用boocle,然后转到0以显示其内容

答案 2 :(得分:0)

n/=10需要跟随printf。
或者,您可以执行以下操作:

String.valueOf(n).chars().mapToObj(Character::toString).forEach(System.out::println);

// If you need the extra newlines:
String.valueOf(n).chars().mapToObj(Character::toString).map(c->c+"\n").forEach(System.out::println);

答案 3 :(得分:0)

最简单的方法,恕我直言,是将其转换为String,将String转换为单字符Strings,然后转换这些数字(如Strings)返回到ints并将它们存储在Array中。像这样:

public static void verticalNumber(int n) {
    int[] nums = Arrays.stream(Integer.toString(n).split(""))
            .mapToInt(s -> Integer.parseInt(s))
            .toArray();
    for (int num: nums) {
        System.out.println(num);
    }
}

所以:

  • 1234成为"1234"
  • "1234"成为["1", "2", "3" "4"]
  • ["1", "2", "3" "4"]成为[1, 2, 3, 4]