黑马程序员技术交流社区

标题: int num=5 ; String s = num+""; Integer.parseInt(s)是多少啊? [打印本页]

作者: zhouxp3323    时间: 2012-3-25 15:03
标题: int num=5 ; String s = num+""; Integer.parseInt(s)是多少啊?
如题,int num=5 ;
          String s = num+"";
          Integer.parseInt(s)是多少啊?还是5吗?怎么算的?
作者: 万正    时间: 2012-3-25 15:11
String s = num+""; 把int类型的5转换成字符串"5”
Integer.parseInt(s)又把字符串"5”转换成int类型的5。
Integer.parseInt(s)的返回类型是int,这些可以查api看。
作者: 翟友伟    时间: 2012-3-25 15:28
很明显 是5啊  
难道有不同的答案??
作者: 刘蕴学    时间: 2012-3-25 15:34
本帖最后由 了无尘 于 2012-3-25 15:39 编辑

肯定是5,下边是我自己实现的parseInt方法,你可以看下
  1. public class asda
  2. {
  3.        
  4.         public static void main(String[] args)
  5.         {
  6.        
  7.                 int num = -5026466;
  8.                 String s = num + "";
  9.                 System.out.println(parseInt(s));
  10.         }
  11.        
  12.         public static int parseInt(String s)
  13.         {
  14.                 char[] chars = s.toCharArray();
  15.                 int temp = 1;
  16.                 int num = 0;
  17.                 for(int i = chars.length - 1; i >= 0; i--,temp*=10)
  18.                 {
  19.                         if(chars[i] == '-')
  20.                         {
  21.                                 num = -num;
  22.                                 break;
  23.                         }
  24.                         num += ((chars[i]-48) * temp);
  25.                         System.out.println(num);
  26.                 }
  27.                 return num;
  28.         }
  29. }
复制代码
  1. 6
  2. 66
  3. 466
  4. 6466
  5. 26466
  6. 26466
  7. 5026466
  8. -5026466
复制代码
原理就不说了,我表达能力差,我估计你看上边的输出应该也看看明白了
中间如果碰到0的话,打印过程会有点不一样的地方,不过没关系不影响最后的目的

至于api的实现,那个没看懂。。。。
作者: 吴超    时间: 2012-3-25 16:28
本帖最后由 吴超 于 2012-3-25 20:55 编辑

楼上正解
作者: zhouxp3323    时间: 2012-3-25 19:10
吴超 发表于 2012-3-25 16:28
int num=5;
String s=sum+““//吧int的转换为字符类型的,输出结果依旧是5,只不过类型不同而已 ...

就是说把5加上空格转成int型的还是5,那个空格没了?
作者: zhouxp3323    时间: 2012-3-25 19:13
万正 发表于 2012-3-25 15:11
String s = num+""; 把int类型的5转换成字符串"5”
Integer.parseInt(s)又把字符串"5”转换成int类型的5。 ...

你的意思是说,int num=5;String s= num+""; 相当于是等于String s="5";
作者: 万正    时间: 2012-3-25 19:21
zhouxp3323 发表于 2012-3-25 19:13
你的意思是说,int num=5;String s= num+""; 相当于是等于String s="5";

对的,你可以看下张孝祥老师的视频http://dl.dbank.com/c0wik0ze7s,第11个自动装箱拆箱的
作者: anyanyhai    时间: 2012-3-25 19:52
必须是5.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2