【笔试】55、实现吧字符串转化为数字(C的atoi函数)
2015-10-06 21:38
399 查看
/**************************************************************************************** *题目:实现吧字符串转化为数字 *时间:2015年10月6日21:08:13 *文件:StringToInt.java *作者:cutter_point ****************************************************************************************/ package bishi.Offer50.y2015.m10.d06; import org.junit.Test; public class StringToInt { private int g_nStatus = Status.kValid.getValue(); private enum Status { //定义构造函数传参数 kValid(0), kInvalid(1); //定义变量 private int value; //构造函数 private Status(int _value) { this.value = _value; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } private long strToIntCore(char digit[], boolean minus) { long num = 0; int index = 1; while(index != digit.length) { //要求要在我们的数字范围内 if(digit[index] >= '0' && digit[index] <= '9') { int flag = minus ? -1 : 1; //用minus来确定正负 num = num * 10 + flag * (digit[index] - '0'); //累加 if(!minus && num > Integer.MAX_VALUE || minus && num < Integer.MIN_VALUE) { //防止堆栈溢出,我们转化的是int型的,但是我们在这里用long来判断堆栈的溢出 num = 0; break; }//if ++index; }//if else { num = 0; break; }//else }//while if(index == digit.length) { //转化成功 this.g_nStatus = Status.kValid.getValue(); }//if return num; } public int strToInt(String str) { this.g_nStatus = Status.kInvalid.getValue(); long num = 0; if(str != null && str != "") { char strc[] = str.toCharArray(); boolean minus = false; //默认是正数 int index = 0; //下标 if(strc[index] == '+') { ++index; }//if else if(strc[index] == '-') { ++index; //负数 minus = true; }//else if num = strToIntCore(strc, minus); }//if return (int)num; } @Test public void test() { StringToInt s = new StringToInt(); String x = "-9845"; System.out.println(s.strToInt(x)); System.out.println(5 + s.strToInt(x)); } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- 数据库链接字符串查询网站