有个整数1234,写个方法将其反转结果为4321(如果是1230,结果为321),考虑负数
解决方案 »
- 事务配置不成功,求助,环境是spring+jdbc
- Spring Security 登录页面问题
- struts设计网页时,如何实现将数据库中的内容动态显示和链接
- 关于hibernate的lazy属性
- 小弟初学Spring,请各位大哥多多关照!
- Hibernate cascade 的问题?
- A question about access Active Directory information via JNDI?
- weblogic+sqlserver!!..在线...马上记帐...
- 请问各位J2EE是JAVA 2 企业版,是指??
- spring配置文件求助
- com.ibm.CORBA.iiop.ORB 在那个包里面?
- 2个数组取他们不同值的组合
public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>();
int n = -12340;
boolean negative = false;
// n为n的绝对值, 记录下n的符号
if (n < 0) {
n = -n;
negative = true;
}
// 去掉后面的 0
int temp;
do {
temp = n % 10;
if (temp != 0) {
break;
}
n /= 10;
} while (true);
// 取得每位数字, 因为是逆序的, 所以使用栈来处理.
while (n != 0) {
int m = n % 10;
stack.push(m);
n /= 10;
}
// 把数字构造成一个字符串, 输出来好看点.
StringBuilder sb = new StringBuilder();
for (int i : stack) {
sb.append(i);
}
// 如果是负数, 把负号加进去, 如果要加在后面, 使用sb.append('-')就可以了.
if (negative) {
sb.insert(0, '-');
}
System.out.println(sb.toString());
}
}
public static int reverse(int origin) {
if (origin > -10 && origin <10) {
return origin;
}
boolean isNegative = origin < 0;
if (isNegative) {
origin = -origin;
}
String strVal = String.valueOf(origin);
char[] originArr = strVal.toCharArray();
int len = originArr.length;
char[] reverseArr = new char[len];
for (int i = 0; i < len; i++) {
reverseArr[i] = originArr[len-i-1];
}
String reverseStr = new String(reverseArr);
if (isNegative) {
reverseStr = "-" + reverseStr;
}
return Integer.parseInt(reverseStr);
}
System.out.println(reverse(12345));
System.out.println(reverse(-12345));
System.out.println(reverse(-1));
System.out.println(reverse(Integer.MAX_VALUE)); // overflow
System.out.println(reverse(Integer.MIN_VALUE)); // overflow
}
public static int reverse(int num) {
int result = 0;
while(num != 0) {
result = result * 10 + num % 10;
num /= 10;
}
return result;
}
}
int result = 0;
while(num != 0) {
result = result * 10 + num % 10;
num /= 10;
}
return result;
}
看了果子大神的代码 看样子不一定非得靠操作String来完成啊..
public static String reserve(int i){
if(i==0) {
return "0";
}else if(i>0){
StringBuffer sb = new StringBuffer(String.valueOf(i));
return sb.reverse().toString().replaceFirst("[0]+", "");
}else{
StringBuffer sb = new StringBuffer(String.valueOf(Math.abs(i)));
return "-"+sb.reverse().toString().replaceFirst("[0]+", "");
}
}
public static int intReverse(int source)throws NumberFormatException{
String a = "";
StringBuffer buffer = new StringBuffer(new Integer(source));
if(source<0){
source = Math.abs(source);
a = "-";
}
return Integer.parseInt(a+buffer.reverse().toString());
}