码迷,mamicode.com
首页 > 其他好文 > 详细

把字符串转换成整数

时间:2019-07-16 18:34:07      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:desc   for   eth   des   sub   功能   rto   函数   gen   

题目描述

将一个字符串转换成一个整数(实现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;
    }
}

  

把字符串转换成整数

标签:desc   for   eth   des   sub   功能   rto   函数   gen   

原文地址:https://www.cnblogs.com/strive-19970713/p/11196386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!