例如:现在有整数1234,输出4321整数,问题摘自<<c语言范例开发大全>>
算法实现的不够好.
package com.jue.numberreverse;
public class NumberReverse {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int old = 123456789;
System.out.println("old:" + old);
System.out.println("new:" + getReverseDataNumber(old));
}
public static int getReverseDataNumber(int old) {
final int length = getDataLength(old);
final int[] datas = new int[length];
int tempdata = old;
for (int i = 0; i < length; i++) {
int dataInIndex = tempdata / getMultipleData(length - 1 - i);
datas[i] = dataInIndex;
tempdata -= dataInIndex * getMultipleData(length - 1 - i);
}
int newdata = 0;
for (int i = 0; i < datas.length; i++) {
newdata += datas[i] * getMultipleData(i);
}
return newdata;
}
private static int getMultipleData(int indexInNumber) {
if (indexInNumber == 0) {
return 1;
}
return 10 * getMultipleData(indexInNumber - 1);
}
public static int getDataLength(int data) {
return String.valueOf(data).length();
}
}