【问题标题】:Number's print in its sizes [closed]数字的大小打印[关闭]
【发布时间】:2021-02-20 20:09:35
【问题描述】:

我必须打印这样的东西

但我面临运行时错误和错误答案

输入:

153

输出:

1:1

5:55555

3:333

获取一个整数并按其大小打印每个数字

import java.util.Scanner;

public class q9774 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();

        String entery = Integer.toString(n);
        char[] E = entery.toCharArray();
        for (char value : E) {
            System.out.print(value + ": ");
            if (value == 0) continue;
            else {
                for (int i = 0; i < Integer.parseInt(String.valueOf(value)); i++) {
                    System.out.print(value);
                }
                System.out.println();
            }
        }
    }
}

【问题讨论】:

  • 您的问题是什么?您已经发布了一些代码 - 大概它不会做您想要的。详细描述出了什么问题以及您希望发生什么。

标签: java string char repeat


【解决方案1】:

我为每个数字添加了一个嵌套循环,并根据j &lt;= i;条件的字符串中的值索引重复该嵌套循环:

Scanner input = new Scanner(System.in);
int n = input.nextInt();

String entery = Integer.toString(n);
char[] E = entery.toCharArray();
for (int i = 0; i < E.length; i++) {
    for (int j = 0; j <= i; j++) {
        System.out.print(E[i]);
    }
    System.out.println();
}

【讨论】:

    【解决方案2】:

    这是一种方法。

    • 将 int 转换为 String,然后转换为 char[] 数组
    • 打印字符后跟其自身重复。
    • 任何字符数字 - “0”是由字符表示的相同数量的数值。所以字符 '7' 的 int 值是 '7' - '0' 或 7。
    int i = 153;
    for (char c : Integer.toString(i).toCharArray()) {
            System.out.printf("%c:%s%n", c, (c+"").repeat(c-'0'));
    }
    

    打印

    1:1
    5:55555
    3:333
            
    

    【讨论】:

      【解决方案3】:

      从 Java-11 开始,您可以使用 String#repeat 将字符串重复给定次数。

      import java.util.Scanner;
      
      public class Main {
          public static void main(String[] args) {
              Scanner input = new Scanner(System.in);
              int n = input.nextInt();
      
              String entry = Integer.toString(n);
              for (char value : entry.toCharArray()) {
                  System.out.print(value + ": ");
                  System.out.println(String.valueOf(value).repeat(Character.getNumericValue(value)));
              }
          }
      }
      

      示例运行:

      153
      1: 1
      5: 55555
      3: 333
      

      处理每个字符的另一种方法是在每个字符上拆分字符串,然后重复它的次数等于其数值。

      import java.util.Scanner;
      
      public class Main {
          public static void main(String[] args) {
              Scanner input = new Scanner(System.in);
              int n = input.nextInt();
              String entry = Integer.toString(n);
      
              for (String s : entry.split("")) {// Split on each character
                  System.out.print(s + ": ");
                  System.out.println(s.repeat(Integer.parseInt(s)));
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多