java 自定义 string---> int做法



/**
 * 自定义 string---> int做法
 * @author Administrator
 *
 */
public class StringToInt {

	
	public static void main(String[] args) {

		String testStr = "123";
		int intResult = transferStrToInt(testStr);
		System.out.println(intResult);
		/*char temp = '9';   // char temp = '0';
		System.out.println((int)(temp));  // char '0' ---> int 为48    char '9' --->   57 */	
	}

	/**
	 * 解释:
	 * 1 将字符串变更为字符数组
	 * 2判断每个字符,只能是 ['0','9']之间的字符才可以转换
	 * 3在乘以10的时候,需要用遍历的字符和字符0对应的int数作差后,用差额循环乘以10,
	 * @param testStr
	 * @return
	 */
	private static int transferStrToInt(String testStr) {
		final int TEN = 10;
		int result = 0;
		char[] charArr = testStr.toCharArray();
		for(int i=0; i<charArr.length; i++){
			char tempChar = charArr[i] ;
			if(tempChar - 48 < 0 || tempChar - 48>9){//[单个字符只能在0-9之间,0字符对应int数值为48]
				return -1;
			}
			int tempInt = tempChar - 48;// 单个字符和字符0之间的差额
			for(int j = charArr.length - i - 1; j >0; j--){
				tempInt *= TEN;
			}
			result += tempInt;
		}
		return result;
	}

}

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2009823