字符串转数字,不用系统自带函数
这个是昨天别人出的一道题目,我自己想的有点复杂的了,当时不知道字符之间可以相减,不罗嗦了,两个写法对比下吧。
方法一:
1 String s = "12254";
2 int l = s.length();
3 int n = 0;
4
5 for (int i = 0; i < l; i++) {
6 n += ((int) s.charAt(i) - 48) * Math.pow(10, l - i - 1);
7 }
8 System.out.println(n);
2 int l = s.length();
3 int n = 0;
4
5 for (int i = 0; i < l; i++) {
6 n += ((int) s.charAt(i) - 48) * Math.pow(10, l - i - 1);
7 }
8 System.out.println(n);
方法二:
1 String s = "12254";
2 int l = s.length();
3 int radix = 1;
4 int n = 0;
5
6 for (int i = l; i > 0; i--) {
7 n += (s.charAt(i - 1) - '0') * radix;
8 radix = radix * 10;
9 }
2 int l = s.length();
3 int radix = 1;
4 int n = 0;
5
6 for (int i = l; i > 0; i--) {
7 n += (s.charAt(i - 1) - '0') * radix;
8 radix = radix * 10;
9 }
10 System.out.println(n);