字符串转换成整数

原创 2015年07月07日 22:13:48
/*
 * 输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345。
 * 
 * 需要考虑的问题:1.由于整数可能不仅仅之含有数字,还有可能以'+'或者'-'开头,表示整数的正负。2.处理非法输入。
 * 在使用指针之前判断这个指针是不是为空。3.输入的字符串中可能含有不是数字的字符。4.最后一个需要考虑的问题是溢出问题。
 */
public class atoiTest {
	public static long atoi(String str) throws Exception {
		boolean negative = false;
		long value = 0;
		if (str == null || str.equals("")) 
			throw new Exception("null string or the string has no character!");
		for (int i = 0; i < str.length(); i++) {
			if (i == 0 && (str.charAt(0) == '-' || str.charAt(0) == '+')) {
				if (str.charAt(0) == '-') {
					negative = true;				
				}
			} 
			else {
				if (str.charAt(i) >= '0' && '9' >= str.charAt(i)) {
					value = value * 10 + (str.charAt(i) - '0');
					if (value > Integer.MAX_VALUE) 
						throw new Exception("OUT OF INTEGER  RANGE");
				} 
				else 
					throw new NumberFormatException("not an integer");
			}
		}
		return negative == true ? value * -1 : value; 			
	}
	public static void main(String[] args) throws Exception {
		atoiTest at=new atoiTest();
		String[] str={"0", "-","01", "-1","123","289765","1000000000","-1000000000",
				"-1000000000000","+aa","-abc"};
		for(int i=0;i<str.length;i++){
			System.out.println("字符:"+str[i]);
			System.out.println("整数:"+at.atoi(str[i]));
		}
	}
}

面试题33:把字符串转换为整数

C语言的库函数atoi()的作用是将一个字符串转换为整数。写一个函数StrToInt,实现这一功能。...
  • htyurencaotang
  • htyurencaotang
  • 2013年09月01日 20:29
  • 5616

递归将整数转字符串

#includevoid invert(int n) { int i; i=n%10; if(n/10) invert(n/10); printf("%...
  • zxiang248
  • zxiang248
  • 2016年03月12日 19:08
  • 298

Python:把字符串转换成整数

牛客网上的剑指 offer的在线编程: 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 # -*- ...
  • Lynette_bb
  • Lynette_bb
  • 2017年07月20日 02:01
  • 694

如何将字符串转换成整数.

1、如何将字符串String转化为整数int   int i = Integer.parseInt(str);   int i = Integer.valueOf(my_str).intValu...
  • wei323001
  • wei323001
  • 2013年03月31日 20:50
  • 908

【剑指offer-Java版】49把字符串转换为整数

字符串转换为整数 : atoi可能的输入: 1 带符号数 2 无符号数 3 零 4 空指针 5 超出表示范围 – 暂时仅仅是直接退出且设置最小 – 可以考虑此时抛个异常 6 非法输入,比如...
  • Sugar_Z_
  • Sugar_Z_
  • 2016年04月27日 09:48
  • 905

C语言将字符串转为整数

1、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。需要注意的是,这个几个函数是C语言提供的扩展功能,并不是标准的函数,必须引...
  • jiede1
  • jiede1
  • 2017年04月26日 17:19
  • 5147

把字符串转换成整数(java版)

【题目描述】将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0【输入说明】输入一个字符串,包括数字字母符号,可以为空【输出说明】如果是合法的...
  • ouyangyanlan
  • ouyangyanlan
  • 2017年06月07日 11:16
  • 1349

C语言 用递归法将一个整数n转换成字符串

#include int main(void) { int n; int enter_n(); void print_n(int n); n=enter_n(); print_n(n);...
  • knuuy
  • knuuy
  • 2015年05月10日 14:26
  • 2770

《剑指Offer》面试题:将字符串转换为整数

题目 题目:把字符串转化为整数 ,若输入无效,则返回0且将标志位设为true 自己以前在一些书上面看到过关于 字符串转化为整数的例子,心中有点印象,知道要考虑一些特殊情况。今天决定写下这段代码,...
  • u010412719
  • u010412719
  • 2015年08月30日 20:02
  • 1550

c语言实现将一个整数转换为字符串

#include void convert(int n) { int i; if ((i=n/10)!=0) convert(i); putchar(n%10+'0'); } int ...
  • u012965373
  • u012965373
  • 2015年05月14日 09:51
  • 2389
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串转换成整数
举报原因:
原因补充:

(最多只允许输入30个字)