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

    题目描写叙述

    输入一个表示整数的字符串,把该字符串转换成整数并输出,比如输入字符串"345",则输出整数345。

    主要思想:将输入的字符串,拆解为单个的字符

    1、去空之后,開始的字符是否为“+”或者“-”。

    2、每一个字符减去‘0’,判读输入的字符是不是0-9的。

    3、假设为可变数字字符则先前结果乘以10加当前数字;

    4、特别注意越界的问题。

    	/**
    	 * <p>
    	 * </p>
    	 * @author zhangjunshuai
    	 * @date 2014-5-15 上午10:12:14
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String[] test ="-2147483648,2147483648,-2147483649,abc,-abc,1a,23a8f,-3924x8fc,  321,  -321,123 456,123    ,   - 321,  +4488,  + 413,++c,++1,--2,  -2".split(",");
    		for(int i=0;i<test.length;i++)
    			toNum(test[i]);
    		toNum("-2147483658");
    	}
    	/**
    	 * <p>
    	 * 字符转为整数
    	 * </p>
    	 * @author zhangjunshuai
    	 * @date 2014-5-15 上午11:33:08
    	 * @param stringNum
    	 */
    	public static void toNum(String stringNum){
    		if(null !=stringNum&&null != stringNum.trim()){
    			String stringNumTrim = stringNum.trim(); 
    			
    			int MAX = Integer.MAX_VALUE;
    			int MIN = Integer.MIN_VALUE;
    			int MAX_DIV = MAX/10;
    			int MIN_DIV = -1*(MIN/10);
    			int MAX_R = MAX%10;//最大值取余
    			int MIN_R = MIN%10;//最小值取余
    			int result = 0;
    			int sign = 1;
    			int count = 0;
    			char[] stringnum =  stringNumTrim.toCharArray();
    			if('-'==stringnum[count]){
    				++count;
    				sign = -1;
    			}
    			if('+'==stringnum[count]){
    				++count;
    				sign = +1;
    			}
    			for(;count<stringnum.length;count++){
    				int r = stringnum[count]-'0';//char事实上就是整数
    				if(sign>0
    						&&(result>MAX_DIV||(result==MAX_DIV&&r>MAX_R))){
    					result =MAX;
    					break;
    				}
    				if(sign<0
    						&&(result<MIN_DIV||(result==MIN_DIV&&MIN_R<r))){
    					result = MIN;
    					break;
    				}
    				if(r>-1&&r<10){
    					result = result*10+r;
    				}else{
    					break;
    				}
    			}
    			System.out.println("输入的字符为:"+stringNumTrim+",结果是:"+result);	
    		}else{
    			System.out.println("请输入有效的字符串");
    		}
    	}
    

    PS:
    本文是本人在学习July算法时候所做笔记。全部思想眼下都来自此地址。

  • 相关阅读:
    jQuery 在 IE 上 clone checkbox 的問題。
    C/C++ typedef用法
    C++继承
    map常用操作
    C++ JsonCpp 使用(含源码下载)
    string常用操作
    C++虚函数
    STL容器迭代过程中删除元素技巧(转)
    关于IE下用HTTPS无法下载/打开文件(转)
    C++STL概览
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7391110.html
Copyright © 2011-2022 走看看