A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 权跃杰 中级黑马   /  2012-7-31 00:20  /  2344 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中有没有一种可以把一个多位的数把他的个位,十位,百位,千位上的数字单独提取出来的方法

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
可以啊 需要用到求模运算
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田向向 + 1 赞一个!

查看全部评分

回复 使用道具 举报
用数对10取模就可以达到楼主的目的了


----PS:刚看到,楼上解决了
回复 使用道具 举报
没有更直接的方法吗,如果这样的话,要求个位数的立方加上十位数的立方加上百位数的立方等于这个数本身,这样写的时候,效率不是很低
回复 使用道具 举报
/*
思路:想定义一个整型,将整型转化为字符串类型,然后将字符串转化为
      数组,对数组的操作遍历就可以得到各个位置的数字
*/
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]);
         }
  
}
}

回复 使用道具 举报
此处可以根据传入的值来获取不同多位数的每位上的值:
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:23
7#
有啊,你这样做,比如 有一个数字为: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开始的,
}
//你把这些语句封装成一个方法,或者类,直接送参数调用即可,嘿嘿,希望有助于你开拓思路

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
java API中没有这样的方法,需要自己写的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马