`
zwhc
  • 浏览: 257873 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

atoi

阅读更多
刚才看到 左耳朵耗子 的微博

现在的程序员,连atoi()都不知道是什么了,没事,那我改,不叫atoi()改叫StrToInt(),却发现,好些人连ASCII码都不知道是怎么一回事,没事,我教会你。但最终却发现怎么有这么多人连这样简单的程序都写不好(包括有多年工作经验的人)。“比技术更恐怖的是有一群不合格的程序员在使用这这些技术”。

http://weibo.com/1401880315/AaNkykg6J
--------------------
顺手写了一个。比想象中的难一点。

然后看了下 Integer.parseInt 的源码,发现基本一致。
当然,我的是简化版,Integer.parseInt 好生复杂。

--------------------


	public static int atoi(String s){
		int r = 0;

		boolean isMinus = false;
		
		if(s.length()==0){
			return 0;
		}
		
		int idx = 0;
		if(s.charAt(0)=='-' ){
			idx++;
			isMinus = true;
		}else if(s.charAt(0)=='+' ){
			idx++;
		}

		if(s.length()<=idx){
			return 0;
		}
		
		for(int i=idx; i<s.length(); i++){
			char c = s.charAt(i);
			if(c<'0' || c>'9'){
				break;
			}
			int t = c - '0';
			r = r * 10 + t;
		}
		
		if(isMinus){
			r = -r;
		}
		
		return r;
	}
	
	public static void testAtoi(){
		String[] ss = {
				"asd",
				"123983asd",
				"-123asd",
		};
		Integer.parseInt("123"); 
		for(int i=0; i<ss.length; i++){
			System.out.println( ss[i] + ":" + atoi(ss[i]));
		}
	}

1
4
分享到:
评论
2 楼 white_crucifix 2013-09-24  
kyfxbl 写道
左耳朵耗子这人感觉挺装的,发的帖子也没什么营养,我已经取消关注了


大牛总是会有一些大牛的脾气 =,.=
1 楼 kyfxbl 2013-09-23  
左耳朵耗子这人感觉挺装的,发的帖子也没什么营养,我已经取消关注了

相关推荐

Global site tag (gtag.js) - Google Analytics