前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaSE-将字符串转换为数字

JavaSE-将字符串转换为数字

原创
作者头像
程序员阿杜
修改2021-03-16 10:03:30
2.5K0
修改2021-03-16 10:03:30
举报
文章被收录于专栏:开源君

32.将字符串转换为数字

题目描述

实现函数 atoi 。函数的功能为将字符串转化为整数

提示:仔细思考所有可能的输入情况。这个问题没有给出输入的限制,你需要自己考虑所有可能的情况。

输入

"123"

1

返回值

123

1

分析

1.对字符串进行判空处理,如果字符串为空,则返回值为0

2.然后将字符串转换为一个char型的数组

3.判断正负号

4.判断会不会越界,会越界的时候直接输出结果

5.如果遇到字母直接退出

代码实现

import java.util.*;

代码语言:txt
复制
public class Solution {
代码语言:txt
复制
    /**
代码语言:txt
复制
     * 
     * @param str string字符串 
     * @return int整型
     */
  public  int atoi(String str) {
		if (str == null || str.trim().length() < 1)
			return 0;
		char[] c = str.trim().toCharArray();
		int sign = 1;
		int index = 0;
		if (c[0] == '+')
			index++;
		if (c[0] == '-') {
			sign = -1;
			index++;
		}
		int num = 0;
		for (int i = index; i < c.length; i++) {
			if (c[i] - '0' >= 0 && c[i] - '9' <= 0) {
				if (num > Integer.MAX_VALUE / 10 || num == Integer.MAX_VALUE / 10 && c[i] - '7' > 0) {
					if (sign > 0)
						return Integer.MAX_VALUE;
					else
						return Integer.MIN_VALUE;
				}
				num = 10 * num + c[i] - '0';
			} else
				break;
		}
		return num * sign;
代码语言:txt
复制
	}
代码语言:txt
复制
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档