首页 > 其他 > 详细

8. String to Integer (atoi)

时间:2020-01-04 11:45:05      阅读:88      评论:0      收藏:0      [点我收藏+]

Description

技术分享图片

Soluction

public class Solution {
	public int myAtoi(String str) {
		char[] numbers = str.toCharArray();
		// sign symbol, 1 for positive, -1 for negative
		int sign = 1;
		// start position
		int start = -1;
		// number to return
		long sum = 0;
		// make sure only one sign symbol
		boolean signExist = false;
		// loop until find the first numerical digit
		for (int i = 0; i < numbers.length; i++) {
			char temp = numbers[i];
			if (temp == ‘ ‘) {
				if (signExist == true)
					break;
				else
					continue;
			}
			else if (temp == ‘+‘ || temp == ‘-‘) {
				if (signExist == false) {
					signExist = true;
					if (temp == ‘-‘)
						sign = -1;
					continue;
				} else {
					break;
				}
			} else if (temp >= ‘0‘ && temp <= ‘9‘) {
				if (start == -1) {
					start = i;
					break;
				}
			}
			else {
				break;
			}
		}
		
		// numerical digits don‘t exist
		if (start == -1)
			return (int)sum;
		
		
		// combine to a number 
		for (int i = start; i < numbers.length; i++) {
			if (numbers[i] >= ‘0‘ && numbers[i] <= ‘9‘) {
				sum = sum * 10 + (numbers[i] - ‘0‘);
				if (sum*sign > Integer.MAX_VALUE) {
					sum = Integer.MAX_VALUE;
					break;
				}
				if (sum*sign < Integer.MIN_VALUE) {
					sum = Integer.MAX_VALUE + 1;
					break;
				}
			} else {
				break;
			}
		}
		
		return (int)sum*sign;
	}
}

  

8. String to Integer (atoi)

原文:https://www.cnblogs.com/codersujf/p/12148306.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!