Fork me on GitHub

把字符串转换成整数

题目描述

将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0
示例1

输入

+2147483647
    1a33

输出

2147483647
    0
/**
 * 
 * @author gentleKay
 * 题目描述
 * 将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),
 * 要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
 * 输入描述:
 * 输入一个字符串,包括数字字母符号,可以为空
 * 输出描述:
 * 如果是合法的数值表达则返回该数字,否则返回0
 * 示例1
 * 		输入
 * 			+2147483647
 * 			1a33
 * 		输出
 * 			2147483647
 * 			0
 */

public class Main48 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "-13246+546+";
		System.out.println(Main48.StrToInt(str));
	}
	
	public static int StrToInt(String str) {
		if (str.length() == 0 || str.equals("")) {
			return 0;
		}
		char[] ch = str.toCharArray();
		
		int symbol = 0;
		if (ch[0] == '-') {
			symbol = 1;
		}
		int sum = 0;
		for (int i=symbol;i<ch.length;i++) {
			if (ch[i] == '+') {
				continue;
			}
			if (ch[i] < 48 || ch[i] > 57) {
				return 0;
			}
			
			sum = sum*10 + ch[i]-48;
		}
		
        return symbol == 0 ? sum : sum * -1;
    }
}

  

posted @ 2019-07-16 17:38  gentleKay  阅读(850)  评论(0编辑  收藏  举报