黑马程序员技术交流社区

标题: 遇到的问题 [打印本页]

作者: 权跃杰    时间: 2012-7-31 00:20
标题: 遇到的问题
java中有没有一种可以把一个多位的数把他的个位,十位,百位,千位上的数字单独提取出来的方法
作者: 张立江    时间: 2012-7-31 00:31
可以啊 需要用到求模运算
  1. class  Demo100
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int i = 123456;
  6.                 while(i/10 > 0){
  7.                         int j = i%10;//模10就得到最后一位数字 6了
  8.                         System.out.println(j);
  9.                         i = i/10;//再将j除以10,得到前5位数字 是12345
  10.                         if(i<10)//当i是个位数的时候,就打印出来第一位数字
  11.                                 System.out.println(i);
  12.                 }        
  13.         }
  14. }
复制代码

作者: 周世阳    时间: 2012-7-31 00:39
用数对10取模就可以达到楼主的目的了


----PS:刚看到,楼上解决了
作者: 权跃杰    时间: 2012-7-31 00:45
没有更直接的方法吗,如果这样的话,要求个位数的立方加上十位数的立方加上百位数的立方等于这个数本身,这样写的时候,效率不是很低
作者: 尹善波    时间: 2012-7-31 01:28
/*
思路:想定义一个整型,将整型转化为字符串类型,然后将字符串转化为
      数组,对数组的操作遍历就可以得到各个位置的数字
*/
class Trans
{
public static void main(String[] args)
{
  int i=45848;
   String s=Integer.toString(i);//整型转化为字符串
   char[] ch=s.toCharArray();//字符串转化为数组
         for (int x=0;x<ch.length ;x++ )//遍历出各个位置的数字
         {
     System.out.println(ch[x]);
         }
  
}
}


作者: 戚题彪    时间: 2012-7-31 01:57
此处可以根据传入的值来获取不同多位数的每位上的值:
public class Qwei {
        public static void main(String[] args) {
                int i = Integer.parseInt(args[0]);       //传入i的值
                String   str   =   Integer.toString(i);  //把i转化成String类型字符串
                int n = str.length();                    //求字符串的长度即整形数的位数  
               
                for(int k=0;k<n;k++){
                        int now = i/(int)Math.pow(10,k);               //当前值
                        System.out.println("第"+(k+1)+"位的值为:"+now%10);//从最低位开始算起
                }
               
        }
}
作者: 王峰    时间: 2012-7-31 16:17
有啊,你这样做,比如 有一个数字为:789123;我写个程序你看下,希望对你有提示作用
int a = 789123;
Integer aInt = new Integer(a);
String str = aInt.toString();
//在定义一个整型数组,把个,十,百位等依次放在数组中,这里数组下标为0的我给你放了个位,你看看
int[] num = new int[str.length];
//然后把字符串转化成字符数组
char[] ch = str.toCharArray(); 现在ch里面其实已经是存放着各位的数字,只是字符形式而已,
//num数组依次保存的数字,为:个位,十位,百位,千位。。。
for(int i = str.length-1,j = 0; i >= 0; i --,j++){
num[j] = ch[i] - 48; //这里减去48是因为数字字符转化为十位数时,是从48开始的,
}
//你把这些语句封装成一个方法,或者类,直接送参数调用即可,嘿嘿,希望有助于你开拓思路

作者: 牛杨    时间: 2012-8-2 12:33
java API中没有这样的方法,需要自己写的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2