再问达人!

wingoal 2005-01-15 03:52:16
编写一个方法:实现传一个int引数,对该引数进行高低位的移动,实现逆置!如:传入"123",则输出"321"....

高人.达人现身...
...全文
108 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wingoal 2005-01-15
  • 打赏
  • 举报
回复
好...谢谢各位的....其实这是一个华为外包公司的面试题....(15分...最高分..)....
晨星 2005-01-15
  • 打赏
  • 举报
回复
不可以,String对象和内建类型之间更不能进行强制转换。
哪种语言有这种转换啊?

其实即使不考虑语言的语法规则,这仍然很荒唐,如果可以的话,那么这种该怎么办?
String s = "Hello World!";
int i = (int)s;
jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
不可以的,只能通过拆包解包来进行转换
wingoal 2005-01-15
  • 打赏
  • 举报
回复
这是COPY错了...我的意思是上面可不可以用强制转换将一个string型赋给一个int变量..?如果可以,,怎么写?
晨星 2005-01-15
  • 打赏
  • 举报
回复
你是想吧Integer对象利用“(int)”强制转换吗?不行的,Java中没有任何从对象引用到内建类型的强制转换。
晨星 2005-01-15
  • 打赏
  • 举报
回复
“int x=(int)s.toString()).parseInt();”啥意思?括号都不匹配。
wingoal 2005-01-15
  • 打赏
  • 举报
回复
同时也再次谢过各位了...
小弟初学..
不明的是..
为啥这里不可以直接用强制转换类型int x=(int)s.toString()).parseInt();
晨星 2005-01-15
  • 打赏
  • 举报
回复
Integer.toString(i);
这种是“直观”的,那种是“简捷”的。
wingoal 2005-01-15
  • 打赏
  • 举报
回复
谢过了..再一下:jFresH_MaN(我本将心照明月,奈何明月照沟渠!)
StringBuffer s=new StringBuffer(""+i);
如果我不用""+i这种方式将一个int型转为一个String型,...还有几种其它转换方式可以将将int转为string?怎么写?

问完就给分了..
晨星 2005-01-15
  • 打赏
  • 举报
回复
哦,可能我写的晦涩了些。
n *= 10;就是:n = n * 10;
n += (m % 10);就是:n = n + ( m % 10);
m /= 10;就是:m = m / 10;
jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
你就要上面那个不就成了吗?这个实现的效率确实不高啊

int i=123;
StringBuffer s=new StringBuffer(""+i);
s.reverse();
i=new Integer(s.toString()).parseInt();
参考一下吧
wingoal 2005-01-15
  • 打赏
  • 举报
回复
TO: jFresH_MaN(我本将心照明月,奈何明月照沟渠!) (
整形是吧?
int i=123;
StringBuffer s=new StringBuffer(""+i);
s.reverse();

------------可你反转成功后成了string的了..咋转回呢?最好给个实现..(高手见笑了)
jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
就是从低位到高位把m的各位值赋给n
jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
呵呵,确实他的方法效率高
wingoal 2005-01-15
  • 打赏
  • 举报
回复
谢过各位.

TO:steedhorse(晨星) ...你的

while(m > 0) {
n *= 10;
n += (m % 10);
m /= 10;
}
是啥意思...可不可以说下解法?
北极猩猩 2005-01-15
  • 打赏
  • 举报
回复
晨星的方法效率更高些。
晨星 2005-01-15
  • 打赏
  • 举报
回复
好一点的:

public class ReverseIntDigits {
public static int reverseInt(int m) {
int n = 0;

while(m > 0) {
n *= 10;
n += (m % 10);
m /= 10;
}
return n;
}


public static void main(String[] args) {
System.out.println(reverseInt(1234567));
}
}
jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
整形是吧?
int i=123;
StringBuffer s=new StringBuffer(""+i);
s.reverse();

jFresH_MaN 2005-01-15
  • 打赏
  • 举报
回复
StringBuffer s=new StringBuffer("123");
s.reverse();
晨星 2005-01-15
  • 打赏
  • 举报
回复
这很难吗?
最笨的办法:转换成字符串,把字符顺序倒过来,再转换成整数不就可以了么?

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧