900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 字符串转化为整数

字符串转化为整数

时间:2022-04-16 02:18:10

相关推荐

字符串转化为整数

题目:

字符串转换为整数 : atoi

可能的输入:

1 带符号数

2 无符号数

3 零

4 空指针

5 超出表示范围 – 暂时仅仅是直接退出且设置最小 – 可以考虑此时抛个异常

6 非法输入,比如并不是一个0-9或者+ -组成的字符串 – 对于非法输入一律返回的是Integer.MIN_VALUE

解答:

1 public class Solution { 2 3public static long strToInt(String str) { 4 if(str == null) { 5 return Long.MIN_VALUE; 6 } 7 8 if(str.length() == 0) { 9 return 0;10 }11 12 for(int i = 0; i < str.length(); i++) {13 if(!judge(str.charAt(i))) {14 return Long.MIN_VALUE;15 }16 }17 18 char[] chars = str.toCharArray();19 long result = 0;20 21 if(char[0] == '+' || char[0] == '-') {22 result = trans(str.substring(1));23 } else {24 result = trans(str);25 }26 27 if(result > 0 && char[0] == '-') {28 result = -result;29 }30 31 return result;32}33 34public static boolean judge(char c) {35 if(c == '+' || c == '-' || (c >= '0' && c <= '9')) {36 return true;37 } else {38 return false;39 }40}41 42private static long trans(String str) {43 if(str.length() == 0) {44 return 0;45 }46 47 long result = 0;48 for(int i = 0; i < str.length(); i++) {49 result = result*10 + str.charAt(i)-'0';50 51 // important here52 if(result > Long.MAX_VALUE) {53 result = Long.MAX_VALUE;54 break;55 }56 }57 58 return result;59}60 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。