import java.util.*;public class Test { 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); }
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); }
public class NumberTest { public static void main(String[] args) { 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; } }
public static int reverse(int num) { int result = 0; while(num != 0) { result = result * 10 + num % 10; num /= 10; } return result; } 看了果子大神的代码 看样子不一定非得靠操作String来完成啊..
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());
}