黑马程序员技术交流社区

标题: 新手求教来了!! [打印本页]

作者: 湛添友    时间: 2014-3-23 23:41
标题: 新手求教来了!!
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);
}
}


有什么方法把打印结果倒过来?
作者: my_android_drea    时间: 2014-3-24 00:44
把与15的结果装入StingBuffer,在调用reverse()方法打印,OK

作者: 郝大龙0104    时间: 2014-3-24 00:58
你先定义一个字符数组
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])
}


作者: Mr.__ㄨīn    时间: 2014-3-24 09:23
有两种方法
一:建立一个StringBuffer容器,用append将数据添加进去,在用reverse()方法打印
二:建立一个数组容器,从最后一个角标存数据,获取指针当前位置,从当前位置开始打印。
作者: 湛添友    时间: 2014-3-24 20:39
标题: 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
Mr.__ㄨīn 发表于 2014-3-24 09:23
有两种方法
一:建立一个StringBuffer容器,用append将数据添加进去,在用reverse()方法打印
二:建立一个 ...

第一个学会了!




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