atoi的java实现

atoi是字符串转换到整形的函数,用java如何实现呢?看起来简单,陷阱很多,在leetcode网站,这个函数能够写得完全正确的概率只有14%。

atoi的需求是这样的:

  1. 如果前面有空格,需要剔除空格;
  2. 剔除空格后,第一个字符串如果是+号,认为是正数;如果是-号,认为是负数;
  3. 后面的字符如果不是数字,那么返回0,如果是数字,返回实际的数字。遇到不是数字的字符,转换结束。

public class Solution {

public int atoi(String str) {

//这里要小心,需要判断有效性

if(str==null || str.length() == 0)

{

return 0;

}

int nlen = str.length();

double sum = 0;

int sign = 1;

int j = 0;

//剔除空格

while(str.charAt(j) == ‘ ‘)

j++;

//判断正数和负数

if(str.charAt(j) == ‘+‘)

{

sign = 1;

j++;

}else if(str.charAt(j) == ‘-‘)

{

sign = -1;

j++;

}

for(int i=j;i<nlen;i++)

{

char current = str.charAt(i);

if(current >= ‘0‘ && current <= ‘9‘)

{

sum = sum*10 + (int)(current - ‘0‘);

}

else

{

break;//碰到非数字,退出转换

}

}

sum = sum*sign;

//这里要小心,需要判断范围

if (sum > Integer.MAX_VALUE) {

sum = Integer.MAX_VALUE;

} else if (sum < Integer.MIN_VALUE) {

sum = Integer.MIN_VALUE;

}

return (int)sum;

}

}

时间: 2024-11-05 14:44:11

atoi的java实现的相关文章

String to Integer (atoi) leetcode java

题目: 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

leetcode08- String to Integer (atoi)之Java版本

我的leetcode之旅,该篇章主要完成使用Java实现算法.这是第8篇String to Integer (atoi) 全部代码下载:Github链接:github链接,点击惊喜;写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github:多谢: 1.题目简介: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases.

[LeetCode]-007-String to Integer (atoi)

网址:https://leetcode.com/problems/string-to-integer-atoi/ 题意: 字符串转int数 分析: 经典题,主要需要注意输入中,允许先有空格,再来内容. 内容可能还不是整齐和规则的... 解法: 1.遍历空格 2.判断正负号 3.读数字 4.可能存在结尾号 代码: https://github.com/LiLane/leetcode/blob/master/java/008-StringtoInteger(atoi)-201504292346.ja

Java 工程师面试题整理(三)

根据自己收集的还有一部分自己面试的整理出来,希望能帮到面试的兄弟(2019年). 用友网络 1.你们用微服务有什么好处呢? 2.微服务之间的事务是怎么处理的?怎么回滚? 3.MQ用的什么?MQ的事务是怎么做的? 4.Object里面有什么方法?这些方法什么时候需要用到?equals方法和hashCode需要一起重写吗? 5.怎么删除一个list里面的奇数.list里面有十个整数. 6.Java的IO有没有了解?包里都有些什么内容? 7.Java的类加载过程是什么样的? 8.怎么在Object类中

Google App Engine 学习和实践

这个周末玩了玩Google App Engine,随手写点东西,算是学习笔记吧.不当之处,请多多指正. 作者:liigo,2009/04/26夜,大连 原创链接:http://blog.csdn.net/liigo/archive/2009/04/26/4127055.aspx 转载请注明出处:http://blog.csdn.net/liigo 一,怎么想起来玩Google App Engine了呢? 近期想写一个小程序,以便在公司的电脑和家里的电脑之间随时共享数据.但是没有现成的server

LeetCode【8】. String to Integer (atoi) --java实现

String to Integer (atoi) 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 f

【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】

[008-String to Integer (atoi) (字符串转成整数)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 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

[LeetCode][8]String to Integer (atoi)解析与模仿Java源码实现 -Java实现

Q: 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

【LeetCode】String to Integer (atoi) 解题报告 (Java)

这道题在LeetCode OJ上难道属于Easy,但是通过率却比较低,究其原因是需要考虑的情况比较低,很少有人一遍过吧. [题目] 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 poss