黑马程序员技术交流社区

标题: 关于字符串转换的疑问,求解答 [打印本页]

作者: 12300123    时间: 2015-5-3 19:04
标题: 关于字符串转换的疑问,求解答
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                
  4.                 String s="12345";
  5.        
  6.                 char[] ch=s.toCharArray();
  7.                 int[] arr=new int[ch.length];
  8.                
  9.                 for(int x=0;x<ch.length;x++){
  10.                         arr[x]=(int) ch[x];
  11.                        
  12.                 }
  13.                 System.out.println(arr[2]);
  14.                
  15.                
  16.                
  17.         }

  18. }
复制代码



作者: 12300123    时间: 2015-5-3 19:06
谁能帮忙分析一下程序运行结果
作者: 关山明月    时间: 2015-5-3 19:24
本帖最后由 关山明月 于 2015-5-3 19:26 编辑

结果是51   你是不是想将字符串"12345",转换成一个int类型的数组,然后里面的元素是{1,2,3,4,5},但在for循环里这样转换得到的是每个字符的ascii码值,就如同 字符'a'对应的是97,字符'b'对应的是98一样,字符'1'对应的ascii码是49,'2'对应的是50,'3'对应的是51,所以结果是51。
  1. public class Test {
  2. public static void main(String[] args) {

  3. String s="12345";

  4. char[] ch=s.toCharArray();
  5. //int[] arr=new int[ch.length];
  6. int[] arr1=new int[ch.length];

  7. for(int x=0;x<ch.length;x++){
  8. //arr[x]=(int) ch[x];
  9. arr1[x]=Integer.parseInt(ch[x]+"");
  10. }
  11. //System.out.println(arr[2]);
  12. System.out.println(arr1[2]);
  13. }

  14. }
复制代码
这样转换就能得到3了




作者: zuoyou    时间: 2015-5-3 19:55
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                
  4.                 String s="12345";
  5.         
  6.                 char[] ch=s.toCharArray(); //生成这样一个字符数组ch[0]=1,ch[1]=2,,,
  7.                 int[] arr=new int[ch.length];//ch.length=5,并且生成一个空的int数组
  8.                
  9.                 for(int x=0;x<ch.length;x++){
  10.                         arr[x]=(int) ch[x];//ch[x]中是以字符形式保存的数字,转换成该数字对应的ascii码,保存到arr[]中。
  11.                         
  12.                 }
  13.                 System.out.println(arr[2]);//arr[2]中保存字符‘3’的ascii码为51。
  14.                
  15.                
  16.                
  17.         }

  18. }
复制代码

作者: 12300123    时间: 2015-5-3 20:21
zuoyou 发表于 2015-5-3 19:55

明白了,我说怎么输出51,非常感谢。
作者: 12300123    时间: 2015-5-3 20:23
关山明月 发表于 2015-5-3 19:24
结果是51   你是不是想将字符串"12345",转换成一个int类型的数组,然后里面的元素是{1,2,3,4,5},但在for循 ...

是是是,就是要转成int数组的,非常感谢。
作者: cyr    时间: 2015-5-3 21:39
学习了,之前还没想到这等关系咧。
作者: 只吃饭不洗碗    时间: 2015-5-3 22:16
输出3对应的ASCII码了




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