将数字字符串转化成整数值
2017-10-31 15:34
302 查看
/** * Created by lxw, liwei4939@126.com on 2017/10/31. * 将数字字符串转化成整数值 */ public class strToInt { public static boolean isValid(char[] arr){ if(arr[0] != '-' && (arr[0] < '0' || arr[0] > '9')){ return false; } if(arr[0] == '-' && (arr.length == 1 || arr[1] == '0')){ return false; } if(arr[0] == '0' && arr.length > 1){ return false; } for (int i =1; i< arr.length; i++){ if(arr[i] < '0' || arr[i] > '9'){ return false; } } return true; } public static int convert(String str){ if(str == null || str.equals("")){ return 0; } char[] strArr = str.toCharArray(); if(!isValid(strArr)){ return 0; } boolean posi = strArr[0] == '-'? false : true; int minq = Integer.MIN_VALUE / 10; int minr = Integer.MIN_VALUE % 10; int res = 0; int cur = 0; for (int i = posi ? 0 : 1; i < strArr.length; i++){ cur = '0' - strArr[i]; if(res < minq || (res == minq && cur < minr)){ return 0; } res = res *10 +cur; } if(posi && res == Integer.MIN_VALUE){ return 0; } return posi ? -res : res; } public static void main(String[] args){ String str1 = "123"; System.out.println(convert(str1)); String str2 = "023"; System.out.println(convert(str2)); String str3 = "a23"; System.out.println(convert(str3)); } }
相关文章推荐
- 用c语言实现从一个只包含数字的字符串转化为和字符串一样的整数(比如从"12345"转化为整数12345)
- 将字符串中的数字转化为整数(string->int)
- 字符串包含一个或多个数字,编写函数把数字字符转化为整数并返回这个整数。如果字符串包含任何非数字字符,函数就返回零。
- 给定一个整数,把整数中包含的每一个数字放到一个数组中(不要把数字转化为字符串处理)
- 编写一个函数将字符串中的数字字符转化为相应的整数
- C++ 字符串转化为数组 有负数 数字之间为空格间隔
- 【笔试】55、实现吧字符串转化为数字(C的atoi函数)
- 将字符串中的非字母数字,转化为ascii码输出
- 一个将任意字符或字符串按位转化为整数的方法
- 字符数组,字符串、数字转化
- VC将输入框中的数字字符串转化为数字
- object后加“”虽简单但是不好,数字字符串转化为long失去小数
- 字符串转化为数字
- C习题:应用递归算法,将一个int型整数转换为数字字符串。如123转换为“123”
- C语言实现atoi和itoa(字符串与数字之间的转化)
- java中把一个数字转化为字符串
- 字符串与数字间的转化
- 面试题: 十进制INT数字转化为16进制字符串、实现字符串和数字的相互转化
- 字符串时间值和数字时间值的互相转化
- Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字