atoi_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > atoi

atoi

 2013/9/23 22:04:46  zwhc  程序员俱乐部  我要评论(0)
  • 摘要:刚才看到左耳朵耗子的微博现在的程序员,连atoi()都不知道是什么了,没事,那我改,不叫atoi()改叫StrToInt(),却发现,好些人连ASCII码都不知道是怎么一回事,没事,我教会你。但最终却发现怎么有这么多人连这样简单的程序都写不好(包括有多年工作经验的人)。“比技术更恐怖的是有一群不合格的程序员在使用这这些技术”。http://weibo.com/1401880315/AaNkykg6J--------------------顺手写了一个。比想象中的难一点。然后看了下Integer
  • 标签:
刚才看到 左耳朵耗子 的微博

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

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

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

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


class="java" name="code">
	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]));
		}
	}

上一篇: Ftp访问工具类 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名