zoukankan      html  css  js  c++  java
  • 把字符串转换成整数

    题目描述

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

      

  • 相关阅读:
    条款十四 在资源管理类中小心copying行为
    条款八 别让异常逃离析构函数
    条款五 了解C++默默的编写并调用的哪些函数
    volatile——C++关键字(转)
    C++ auto_ptr(转)
    条款十三 以对象管理资源
    优秀文章收集(更新中..)
    条款十一 在operator = 中处理"自我赋值"
    TCP协议疑难杂症全景解析(转)
    大四的迷茫
  • 原文地址:https://www.cnblogs.com/strive-19970713/p/11196386.html
Copyright © 2011-2022 走看看