当前位置: 代码迷 >> J2SE >> 新手,数的各个位上的数
  详细解决方案

新手,数的各个位上的数

热度:145   发布时间:2016-04-23 19:42:59.0
新手求助,求一个数的各个位上的数
刚学到循环和方法的封装以及数组。看到一个题目是输出一个数的各个位上的数字,例如一个数是12345,输出1,2,3,4,5。
我用的方法是先用循环求出这个数是几位数,例如5位数,先用10000去取整,得到1,然后12345-1000得到2345,再用1000取整,得到2,然后2345-2000得到345,以此类推,都是用取整的方法来求最高位,然后再减掉最高位,继续求剩下的数的最高位,直到剩下的数为1位数就结束。但是感觉这个方法好蠢啊,很简单的一个要求我却得用好多行代码。
请教大家这种题目是有什么更简单直接的方法吗?我在网上有搜索到说可以把整数转为字符串,这个还没有学到,如果抛开转换类型这种方法和我上面写的我自己的冗长的方法,还有别的解题思路吗?
谢谢大家啦!
------解决思路----------------------
     int n=123456789;
     String s = ""+n;
     for(int i=0;i<s.length();i++){
         System.out.print(s.charAt(i)+" ");
     }
------解决思路----------------------
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String input=sc.next();
for(int i=0;i<input.length();i++){
System.out.println(input.charAt(i));
}
}
------解决思路----------------------
引用:
Quote: 引用:
     int n=123456789;
     String s = ""+n;
     for(int i=0;i<s.length();i++){
         System.out.print(s.charAt(i)+" ");
     }

谢啦,不过我刚学到for,while等这一类循环,你写的.charAt都还看不懂。。等再学几天再回来学习一下你打的这段

s.charAt(i);   s表示字符串,i表示s字符串的下标(从0到length-1),s.charAt(i)表示s字符串的第i个字节,
即s.charAt(0)=1;   s.charAt(1)=2; 

------解决思路----------------------
第一想法就是转String,在用charat循环输出..
  相关解决方案