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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李君言 中级黑马   /  2013-4-28 01:30  /  2507 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李君言 于 2013-4-28 15:39 编辑

例如  int a=961278;
a是一个数字961278
怎么把它转成数组
int[] b = { 9,6,1,2,7,8};

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

5 个回复

倒序浏览
int a=961278;
string str=a.ToString()[1].ToString();
回复 使用道具 举报
代码如下:

12.jpg (8.67 KB, 下载次数: 0)

12.jpg
回复 使用道具 举报
本帖最后由 xiaohu1218 于 2013-4-28 11:05 编辑

我用java写的,你可能需要改下函数声明部分,但是思想是一致的,代码如下:
(得先声明一个全局变量len,记录数组实际的长度;
还有数组也是全局变量)

public static  void Trans(int num)
        {
                //System.out.println(num);
                int new_num =num;
                for(int i = 9; i>=0;i--)
                {
                        int divide = (int)Math.pow(10,i);//获取10的i次方,并将其强制转为整形数据
                        
                        if(num/divide==0)
                                continue;
                        else
                        {
                                //len=i;
                                len +=1;//获取实际数据个数。跟数组长度无关,因为在数组初始化的时候已经定义了长度
                                
                                if(i!=9)//减去高位中的数据。例如:897,要获取7就要减去800,再减去90,
                                            //每次被除数都会改变
                                {
                                        int  x=(int)Math.pow(10,i+1);
                                        new_num =(int)(new_num-b[i+1]*x);
                                }
                                b=new_num/divide;  //获取b
                                //调试代码
                                /*
                                System.out.println(x);
                                System.out.println(new_num);
                                System.out.println(b);
                                System.out.println(len);
                                */
                        }        
                }
                for(int j =len;j>0;j--)
                        System.out.println(b[j-1]);//输出数组        
        }
回复 使用道具 举报
本帖最后由 黄晓波 于 2013-4-28 12:58 编辑
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             int a = 961278;
  6.             //将int类型的变量a转换成string类型,再利用string的ToCharArray()转换成char数组
  7.             char[] aCharArray = a.ToString().ToCharArray();
  8.             //定义数组,用于存储a的int类型的元素
  9.             int[] b = new int[aCharArray.Length];
  10.             //将char数组aCharArry的元素转换成string类型,再转换成int类型。
  11.             //如果直接将char数组的元素转成int,得到的值不是元素值,而是该元素的ASCII码
  12.             for (int i = 0; i < aCharArray.Length; i++)
  13.             {
  14.                 b[i] = Convert.ToInt32(Convert.ToString(aCharArray[i]));
  15.             }
  16.             //查看int数组b的元素值和数据类型            
  17.             for (int i = 0; i < b.Length; i++)
  18.             {
  19.                 Console.WriteLine("b[{0}]\t{1}\t{2}", i, b[i].GetType(), b[i]);
  20.             }

  21.             Console.ReadKey();
  22.         }
  23.     }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
            int a = 961278;
            int[] b = new int[6];
            int temp = 100000;
            for(int i=0;i<6;i++)
            {
                //将位数上的数字提取出来
                b[i] = a/ temp;
                //将前一位的数字砍掉,方便后面继续获得位数上的数字
                a -= b[i] * temp;
                temp /= 10;
            }
试一下这个?:)

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马