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

© 湛添友 中级黑马   /  2014-3-23 23:41  /  1383 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Shiliu{
public static void getshiliu(int a)
{
for(;a>0;a=a>>>4)
{
int x=a&15;
if(x>9)
System.out.println((char)(x-10+'A'));
else
System.out.println(x);

}
}
public static void main(String[] args){
int n=165695845;
getshiliu(n);
}
}


有什么方法把打印结果倒过来?

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

5 个回复

倒序浏览
把与15的结果装入StingBuffer,在调用reverse()方法打印,OK

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
你先定义一个字符数组
char[]  ch = new char[8];
再定义一个指针  其值为数组的长度
int  flage = ch.length;
然后循环与上15的值 在经过判断 存入数组中  从--flage开始存(倒着存)
if(x>9)
//System.out.println((char)(x-10+'A'));
ch[--flage]=(char)(x-10+'A');
else
//System.out.println(x);
ch[--flage]=x;
}
到最后,存完啦再输出  从 flage标记开始的位置开始输出  结果就和你的结果倒过来啦
for(int x = flage; x<ch.length; x++)
{
    System.out.print(ch[x])
}

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
有两种方法
一:建立一个StringBuffer容器,用append将数据添加进去,在用reverse()方法打印
二:建立一个数组容器,从最后一个角标存数据,获取指针当前位置,从当前位置开始打印。
回复 使用道具 举报

RE: 新手求教来了!!

郝大龙0104 发表于 2014-3-24 00:58
你先定义一个字符数组
char[]  ch = new char[8];
再定义一个指针  其值为数组的长度

内容public class Shiliu{
public static void toHex(int a)
{StringBuffer sb=new StringBuffer();

for(;a>0;a=a>>>4)
    {
   int x=a&15;
    if(x>9)
    sb.append((char)(x-10+'A'));
    if(x<=9)
    sb.append(x);
  
    }
    System.out.println(sb.reverse());
}
    public static void main(String[] args){
int n=2560;
toHex(n);
    }

}
回复 使用道具 举报
湛添友 来自手机 中级黑马 2014-3-26 08:20:41
地板
Mr.__ㄨīn 发表于 2014-3-24 09:23
有两种方法
一:建立一个StringBuffer容器,用append将数据添加进去,在用reverse()方法打印
二:建立一个 ...

第一个学会了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马