题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果输入的不是数字则返回0。
import java.util.Scanner; /** * Created by Dell on 2014/7/14. * * 面试题 * 将字符串转换成数字,不用java自带的方法 */ public class MianShi_01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("str = "); String str = input.nextLine(); System.out.println(new MianShi_01().atoi(str)); } public int atoi(String s) { int[] num = new int[10]; int j = 0; String tmp = null; for (int i = 0; i < s.length(); i++) { if (s.charAt(0) == ‘-‘ || Character.isDigit(s.charAt(i))) { if (s.charAt(0) == ‘-‘) { tmp = "-"; } switch (s.charAt(i)) { case ‘0‘: num[j] = 0; j++; continue; case ‘1‘: num[j] = 1; j++; continue; case ‘2‘: num[j] = 2; j++; continue; case ‘3‘: num[j] = 3; j++; continue; case ‘4‘: num[j] = 4; j++; continue; case ‘5‘: num[j] = 5; j++; continue; case ‘6‘: num[j] = 6; j++; continue; case ‘7‘: num[j] = 7; j++; continue; case ‘8‘: num[j] = 8; j++; continue; case ‘9‘: num[j] = 9; j++; continue; } } else { return 0; } } int NUM = (int) Math.pow(10, j); int a = 0; for (int i = 0; i < num.length; i++) { NUM = NUM / 10; a += num[i] * NUM; } if (tmp != null) { return -a; } return a; } }