【问题标题】:Printing each digit of a number using a for loop使用 for 循环打印数字的每个数字
【发布时间】:2021-03-06 12:42:37
【问题描述】:

我有一个任务,我必须在使用 for 循环时打印每个数字,我很困惑。我知道我写的代码是非常错误的,原因有很多,但是我在拼凑我们一直在学习的各种技能时遇到了很多麻烦。如何修复我的代码,以便将 365 打印为 3 6 5

class Main {
    method1(365);

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

    String number = String.valueOf(num);

    public int method1(int num) {
        for (int i = 0; i < number.length(); i++) {
            int j = Character.digit(number.charAt(i), 10);
            System.out.print("digit: " + j);
        }
    }
}

【问题讨论】:

    标签: java for-loop methods


    【解决方案1】:

    您需要以正确的语法重新排序代码并使其正常工作,

    1. 在main方法中调用method1(365)
    2. 您必须将method1(365) 方法设为静态才能作为类方法访问。
    3. 将 int 数字转换为字符串后,然后通过charAt 访问数字的每个字符
    4. 您可以使用 int j = Character.digit(number.charAt(i), 10); 将字符转换为以 10 为底的数字,或者简单地使用 int j = Character.getNumericValue(number.charAt(i));,默认以 10 为底。
    public static void main(String[] args) {
        method1(365);
    }
    
    public static void method1(int num) {
        String number = String.valueOf(num);
        for (int i = 0; i < number.length(); i++) {
            int j = Character.digit(number.charAt(i), 10);
         // int j = Character.getNumericValue(number.charAt(i));
            System.out.print("digit:" + j + " ");
        }
    }
    

    【讨论】:

    • @Michael 我在 Java 中以正确的语法更改了代码。
    • 谢谢,现在好多了
    【解决方案2】:

    Java 9 开始,您可以使用codePoints 方法:

    int number = 365;
    String.valueOf(number)
            // IntStream
            .codePoints()
            // Stream<String>
            .mapToObj(Character::toString)
            // print in a column
            .forEach(j -> System.out.println("digit: " + j));
    

    输出:

    digit: 3
    digit: 6
    digit: 5
    

    另见:Converting Int value to List of Integer digits

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      相关资源
      最近更新 更多