您的位置:首页 > 编程语言 > Java开发

[JAVA]LeetCode8 String to Integer (atoi)

2015-04-15 16:09 435 查看
Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

题意:将字符串转换为整型。这一题感觉不是很简单,经过多次修改,终于accepted!!!

考虑的问题比较多,首先字符串转换中遇见非数字字符的处理,字符串超出最大整型和最小整型怎么处理。

开题遇到空格,用trim()去空格。

+,-号只可能在去空格后第一位。

中间遇到非数字字符,直接返回前一段字符,判断是否有效,并转换为整型。

代码如下:

public int myAtoi(String str) {
if(str==null)return 0;
str=str.trim();//去空格
int len=str.length();
if(len==0)return 0;
char signal='+';
int singalNum=0;
int i=0;
char ch=str.charAt(i);
double result=0;
while(i<len)
{
ch=str.charAt(i);
if(ch=='-'||ch=='+')//判断符号
{
if(i!=0)return 0;//如果符号不在首位,返回0
if(ch=='-')signal='-';
}else if(ch>='0'&&ch<='9')
{
result=result*10+(str.charAt(i)-'0');//处理数字
}else if(ch<'0'||ch>'9')//遇到非数字字符,跳出循环,只计算非数字之前的合法数字字符
{
break;
}
i++;
}
if(signal=='-')
result=-1*result;
if(result>Integer.MAX_VALUE)return Integer.MAX_VALUE;
if(result<Integer.MIN_VALUE)return Integer.MIN_VALUE;
return (int)result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode