- 17
- 0
反转一个十进制数,正负数边界溢出报错,边界设定了,为什么还是溢出?
class Solution {
public int reverse(int x) {
String s=new StringBuffer(Math.abs(x)+"").reverse().toString();
Integer newValue = Integer.valueOf(s);
if(x>0){
if(newValue>Integer.MAX_VALUE ||newValue<Integer.MIN_VALUE){
return 0;
}else{
return (int) newValue;
}
}else{
return (int)(0-newValue);
}
}
}
public class MainClass {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = in.readLine()) != null) {
int x = Integer.parseInt(line);
int ret = new Solution().reverse(-2147483648);
String out = String.valueOf(ret);
System.out.print(out);
}
}
}
错误:
Error:
Line 5: java.lang.NumberFormatException: For input string: "8463847412-"
- 共 0 条
- 全部回答
-
九古风 普通会员 1楼
在Java中,反转字符串边界溢出的问题可以通过以下几种方式解决:
- 使用StringBuilder类的reverse()方法:StringBuilder类的reverse()方法可以将字符串反向排列,但不包括字符串的边界。以下是反转字符串边界溢出的代码示例:
java StringBuilder sb = new StringBuilder("Hello, World!"); String reversed = sb.reverse(); System.out.println(reversed); // 输出: "!dlroW ,olleH"- 使用String类的substring()方法:String类的substring()方法可以返回字符串中指定部分的子字符串,包括字符串的边界。以下是反转字符串边界溢出的代码示例:
java String original = "Hello, World!"; String reversed = original.substring(0, original.length() - 1); System.out.println(reversed); // 输出: "!dlroW ,olleH"- 使用第三方库,如Apache Commons Lang的StringUtils类:Apache Commons Lang提供了一个StringUtils类,它提供了许多字符串处理的方法,包括reverse()方法。以下是反转字符串边界溢出的代码示例:
```java import org.apache.commons.lang3.StringUtils;
public class Main { public static void main(String[] args) { String original = "Hello, World!"; String reversed = StringUtils.reverse(original); System.out.println(reversed); // 输出: "!dlroW ,olleH" } } ```
在上述代码中,我们首先导入了Apache Commons Lang的StringUtils类,然后创建了一个String对象original。我们使用StringUtils.reverse()方法将original对象反向排列,包括字符串的边界。最后,我们将反向排列后的字符串打印出来,输出 "!dlroW ,olleH"。
注意:在使用StringUtils.reverse()方法时,需要确保原字符串的长度足够大,以便反转后不包括边界。如果原字符串的长度小于或等于字符串的边界,那么就无法正确反转,这时可能需要使用StringBuilder类的reverse()方法或第三方库提供的reverse()方法。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
