package String;
import java.math.BigDecimal;
public class reverse{
// string没考虑负数
public static String reverseString(String arr) {
char[] charArray = arr.toCharArray();
int n = charArray.length - 1;
for (int i = 0; i <= (n - 1) >> 1; i++) {
char temp = charArray[i];
char temp1 = charArray[n - i];
charArray[i] = temp1;
charArray[n - i] = temp;
}
return new String(charArray);
}
// 存在缺陷,超出表示范围,详见示例
public static int reverseInt1(int a) {
int rs = 0;
boolean flag = true;
if (a < 0) {
flag = false;
a = -a;
}
while (a > 0) {
rs *= 10;
rs += a % 10;
a /= 10;
}
if (!flag) {
rs = -rs;
}
return rs;
}
public static BigDecimal reverseInt2(int a) {
BigDecimal rs = new BigDecimal(0);
boolean flag = true;
if (a < 0) {
flag = false;
a = -a;
}
String reverseString = reverseString(String.valueOf(a));
rs = new BigDecimal(reverseString);
if (!flag) {
rs = rs.multiply(new BigDecimal("-1"));
}
return rs;
}
public static void main(String[] args) {
System.out.println(reverseString("abcdefg"));// gfedcba
System.out.println(reverseString("abcdefgh"));// hgfedcba
System.out.println(reverseString("1234567890"));// 0987654321
System.out.println(reverseString("-1234567890"));// 0987654321-
System.out.println(reverseInt1(1234567890));// 987654321
System.out.println(reverseInt1(1234567899));// 1397719729 错误
System.out.println(reverseInt1(-123456));// -654321
System.out.println(reverseInt2(1234567890));// 987654321
System.out.println(reverseInt2(1234567899));// 9987654321
System.out.println(reverseInt2(-123456));// -654321
}
}