输入一个2位数,怎么样将其个位和十位互换位置?

shenbo1987 2009-10-28 09:39:02
输入一个2位数,怎么样将其个位和十位互换位置?
...全文
2967 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
weijn2000 2009-10-28
  • 打赏
  • 举报
回复
就针对2位数来说,5、6楼的方法已经很好了。
再继续推算一下,很有意思:
假设有一个2位数10a+b,则有 10b + a = b + 9b + 10a - 9a = 10a + b + 9(b-a)
互换后的数 = 原数 + (个位数字 - 十位数字)× 9

比如原数12,则有12 + (2 - 1)×9 = 21
原数91,则有91 + (1 - 9)×9 = 19

借用5楼的代码:
public class TestTest {

public static void main(String[] args) {
int num = 12;
int reverse = num + (num % 10 - num / 10)*9;
System.out.printf("%02d",reverse); //便于90 输出 09
}
}
shenbo1987 2009-10-28
  • 打赏
  • 举报
回复
楼上的思路好多啊~!!嘿嘿
xuyang840117 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bao110908 的回复:]
public class TestTest {

    public static void main(String[] args) {
        int num = 12;
        int reverse = num % 10 * 10 + num / 10;
        System.out.println(reverse);
    }
}
[/Quote]

顶这个 好快。。。
huqingfu100 2009-10-28
  • 打赏
  • 举报
回复 1
5楼是最简单的哦!
melody1616 2009-10-28
  • 打赏
  • 举报
回复
初学者还是用那种古老的方法把,将个位十位求模取余分出来后放入一维数组,然后将两个数呼唤,就是a[0]a[1]互换~
justinavril 2009-10-28
  • 打赏
  • 举报
回复
最简单的:

System.out.println(value/10 + value%10*10);
  • 打赏
  • 举报
回复
public class TestTest {

public static void main(String[] args) {
int num = 12;
int reverse = num % 10 * 10 + num / 10;
System.out.println(reverse);
}
}
xiaozejun 2009-10-28
  • 打赏
  • 举报
回复

public static void main(String[] args) {
int shuzi=48;
String i = String.valueOf(shuzi);
char c[] = new char[2];
c[0]=i.charAt(0);
c[1]=i.charAt(1);
String daox="";
for (int j = c.length-1; j >=0; j--) {
daox=daox+c[j];
}
int k=Integer.parseInt(daox);
System.out.println(k);
}
shenbo1987 2009-10-28
  • 打赏
  • 举报
回复
能具体写出么?我是新手
JavaAlpha 2009-10-28
  • 打赏
  • 举报
回复
使用subString()截取,然后交换即可。
xgj1000 2009-10-28
  • 打赏
  • 举报
回复
把数字转换为char数组,调整数字位置,再转换回来就Ok了。
SambaGao 2009-10-28
  • 打赏
  • 举报
回复
package com.xlh.dao;

public class Math {

public static void main(String args[]) {


int i = 12 ;

//第一种
System.out.println(new StringBuffer(String.valueOf(i)).reverse().toString()) ;
//第二种很强
System.out.println(i%10*10+i/10) ;
//第三种一开始就能想到的
String str = String.valueOf(i) ;
char[] t = new char[str.length()] ;
t = str.toCharArray() ;
str = "" ;
for (int _i=0;_i<=t.length-1;_i++) {
str += t[t.length-1-_i] ;
}
System.out.println(str) ;
//第四种substring
String _str = String.valueOf(i) ;
int len = _str.length() ;
for (int _i=0;_i<=len-1;_i++) {
System.out.println(_str.substring(len-1-_i,len-_i)) ;
}


}
}
wangfenglong36 2009-10-28
  • 打赏
  • 举报
回复
int zs=12;
StringBuffer sb = new StringBuffer(Integer.toString(zs));
int ds=Integer.parseInt(sb.reverse().toString()) ;
System.out.print(ds);
xiandulina 2009-10-28
  • 打赏
  • 举报
回复
楼上头像很。。。。。。。。。。。。
wifewifewife 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 hardycheng 的回复:]
Java codeint test=12;

System.out.println(new StringBuffer(String.valueOf(test)).reverse().toString());

试试这个
[/Quote]
这种比较通用...
hardycheng 2009-10-28
  • 打赏
  • 举报
回复
呵呵 已经有人这么写了 汗啊
hardycheng 2009-10-28
  • 打赏
  • 举报
回复

int test = 12;

System.out.println(new StringBuffer(String.valueOf(test)).reverse().toString());


试试这个
zuoguodang 2009-10-28
  • 打赏
  • 举报
回复
楼主似乎想都没想,就把问题贴出来了
李子做IT 2009-10-28
  • 打赏
  • 举报
回复
支持下 5楼 6楼.

我第一反映还是用字符串呢- -#
网络咖啡 2009-10-28
  • 打赏
  • 举报
回复
数学方法比字符串和字符处理简单多了,支持火龙果
加载更多回复(1)

62,621

社区成员

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

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