【问题标题】:starting a for loop on the last digit of an integer pulled from a scanner (java)在从扫描仪中提取的整数的最后一位上开始 for 循环(java)
【发布时间】:2014-03-14 00:37:10
【问题描述】:

我试图让一个 for 循环从用户通过扫描仪给出的整数的最后一位开始。有什么建议么?

for(int i = number.length()-1;...)

我正在寻找类似的东西,但这不会给我留下编译错误

【问题讨论】:

    标签: java for-loop integer


    【解决方案1】:

    您必须将数字转换为String,然后遍历每个字符。

    public class IterateNumber {
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("Please enter a number:");
            String num = String.valueOf(scanner.nextInt());
    
            for(int i = num.length()-1; i >= 0; i--){
                System.out.println(num.charAt(i));
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用整数运算:

      for (int i = number, digit = i % 10; i > 0; i = i / 10, digit = i % 10) {
          // do something with "digit", which will iterate from last digit to first 
      }
      

      这里有一些示例代码展示了它的工作原理:

      int number = 1234567890;
      for (int i = number, digit = i % 10; i > 0; i = i / 10, digit = i % 10) {
          System.out.println(digit);
      }
      

      输出:

      0
      9
      8
      7
      6
      5
      4
      3
      2
      1
      

      【讨论】:

      • 做得很好!恭喜主持人选举。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多