字符串转换成整数
2014-05-15 12:19
225 查看
题目描述
输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345。主要思想:将输入的字符串,拆解为单个的字符
1、去空之后,开始的字符是否为“+”或者“-”;
2、每个字符减去‘0’,判读输入的字符是不是0-9的;
3、如果为可变数字字符则先前结果乘以10加当前数字;
4、特别注意越界的问题。
/** * <p> * </p> * @author zhangjunshuai * @date 2014-5-15 上午10:12:14 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String[] test ="-2147483648,2147483648,-2147483649,abc,-abc,1a,23a8f,-3924x8fc, 321, -321,123 456,123 , - 321, +4488, + 413,++c,++1,--2, -2".split(","); for(int i=0;i<test.length;i++) toNum(test[i]); toNum("-2147483658"); } /** * <p> * 字符转为整数 * </p> * @author zhangjunshuai * @date 2014-5-15 上午11:33:08 * @param stringNum */ public static void toNum(String stringNum){ if(null !=stringNum&&null != stringNum.trim()){ String stringNumTrim = stringNum.trim(); int MAX = Integer.MAX_VALUE; int MIN = Integer.MIN_VALUE; int MAX_DIV = MAX/10; int MIN_DIV = -1*(MIN/10); int MAX_R = MAX%10;//最大值取余 int MIN_R = MIN%10;//最小值取余 int result = 0; int sign = 1; int count = 0; char[] stringnum = stringNumTrim.toCharArray(); if('-'==stringnum[count]){ ++count; sign = -1; } if('+'==stringnum[count]){ ++count; sign = +1; } for(;count<stringnum.length;count++){ int r = stringnum[count]-'0';//char其实就是整数 if(sign>0 &&(result>MAX_DIV||(result==MAX_DIV&&r>MAX_R))){ result =MAX; break; } if(sign<0 &&(result<MIN_DIV||(result==MIN_DIV&&MIN_R<r))){ result = MIN; break; } if(r>-1&&r<10){ result = result*10+r; }else{ break; } } System.out.println("输入的字符为:"+stringNumTrim+",结果是:"+result); }else{ System.out.println("请输入有效的字符串"); } }
PS:
本文是本人在学习July算法时候所做笔记,所有思想目前都来自此地址。
相关文章推荐
- 数字字符串转换成整数
- 字符串与整数之间的转换(16进制)
- LINQ 学习笔记-字符串数组与整数数组之间的转换,排序
- [导入]一个将整数转换成字符串的函数itoa
- 整数转换成字符串
- 将8进制字符串转换为整数的代码
- 导师作业:2、编写一个函数,将一个整数值转换为16进制表示的字符串。
- 7.1.3 整数和字符串之间的转换
- 顺计时器,将整数转换成分:秒(00:00)形式的时间格式字符串
- atoi(char *str)将字符串转换成整数
- C++ 正负整数转换成字符串并求串的长度
- C/C++面试之算法系列--从“整数转换成字符串”看算法的联想
- 整数转换成字符串的程序--不太成熟
- 去除前导零和字符串转换为整数
- java字符串应用之IP地址转换成整数
- 将整数转换成字符串
- strtol----将16进制字符串转换为整数
- 程序员面试题精选(17):把字符串转换成整数
- 字符串与整数互相转换
- 请编写一个 C 函数,该函数将给定的一个整数转换成字符串