首页 > 技术文章 > 字符串转化为整数

cstdio1 2019-07-25 16:13 原文

题目描述

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

输入描述:

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

输出描述:

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

输入

复制
+2147483647
    1a33

输出

复制
2147483647
    0

c++代码如下:

class Solution {
public:
    int StrToInt(string str) {
    int s=0;    
     for(int i=0;i<str.size();i++){
      if(i==0&&(str[i]=='+'||str[i]=='-')) continue;   
      else if(str[i]>'9'||str[i]<'0'){
          return 0;
      }
         else{
             s=s*10+str[i]-'0';
         }
     }

      if(str[0]=='-') return -1*s;
      else return s;  
        
    }
};

java代码如下:

public class Solution {
    public int StrToInt(String str) {
         int s=0;    
     if(str==""||str.length()==0) return 0;  
     for(int i=0;i<str.length();i++){
      if(i==0&&(str.charAt(i)=='+'||str.charAt(i)=='-')) continue;   //不能写成str.charArt(0)=='+'||str.charArt(0)=='-'
      else if(str.charAt(i)>'9'||str.charAt(i)<'0'){
          return 0;
      }
         else{
             s=s*10+(str.charAt(i)-'0');
         }
     }
      
      if(str.charAt(0)=='-') return -1*s;
      else return s;  
        
    }   
    };

 

推荐阅读