【问题标题】:Java Method declarationJava 方法声明
【发布时间】:2012-10-16 22:55:34
【问题描述】:

我正在尝试为我的程序声明一个方法,该方法只需要一个 5 位整数,并且对于整数的每个数字,从程序中读取一个值并将其打印出来。我知道这不是很清楚,但我无法传达我的意思。我知道这将是某种 for 循环来单独读取整数的每个数字,直到某个数字达到 5。类似于 charAt() 字符串方法,但适用于数字。

【问题讨论】:

    标签: java methods integer


    【解决方案1】:

    阅读“模数”。它是一种原始操作,可通过 Java 中的符号 % 获得。

    对于除法,它是余数。所以

     System.out.println("Last digit: "+(12345 % 10));
    

    将打印 5。自己弄清楚如何获得其他数字。

    作为一个练习,弄清楚如何打印二进制数字

    【讨论】:

      【解决方案2】:

      你可以除法取模。

      while(n > 0) {
        System.out.println("Digit " + (n % 10));
        n /= 10;
      }
      

      如果您使用任何底数,这很好用:您需要做的就是用 10 代替底数(除以底数意味着左移所有内容,取模意味着得到最后一位)。

      【讨论】:

        【解决方案3】:

        您可以非常轻松地将整数转换为字符串并使用charAt()

        String parseableString = Integer.toString(yourInt);
        
        for (int i = 0; i < parseableString.length(); i++){
            System.out.println(parseableString.charAt(i));
        }
        

        【讨论】:

        • 真是个黑客。 哎哟。想办法把数字变成数字。
        • 我试过这个,对不起,我应该在那里说明,但我有另一种读取数字 0-9 的方法,所以它不会读取相同的字符,我需要它来读取数字。不过谢谢,对不起
        • @user1701604 然后您可以使用Integer.parseInt( parseableString.charAt(i) ) 将其解析回int,但正如Anony 所说,这是一种黑客和不必要的转换,但它会在紧要关头完成工作。不过,在这种情况下,取模可能是更好的方法。
        • 所以如果我要从左到右读取数字,我理解模数 (%10, %100,%1000) 从右到左,但是如果我想从从左到右,一次只读取一个数字,而不是从左到右的所有数字?
        • @user1701604 我不知道模数在那种情况下是混乱的,我真的不认为只是转换为字符串然后再转换回这种微不足道的情况有问题,在学术上它是不好,但实际上它真的很容易。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-18
        • 1970-01-01
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多