A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 漠然~回首℃ 中级黑马   /  2014-3-7 00:08  /  1387 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问a什么时候会是97,什么时候会直接输出a;一共有几种情况,举例看看谢谢各位啊!

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

7 个回复

倒序浏览
a的ascll码是97     同时a本身又是个字符     当格式控制符是%d   要求输出的数值   此时输出97    当格式控制符是%c时  输出的是字符a      
回复 使用道具 举报
午夜b'Boy 来自手机 中级黑马 2014-3-7 00:32:47
藤椅
`a`前面没有字符串相连为97,前面有字符串相连为”a"输出
回复 使用道具 举报
'a'本身是字符型,直接打印字符型a那就是a;
把a转换成数值型且不损失数位的时候打印出来的是97,因为是数字嘛
还有楼上的输出格式这种考虑,也是一个意思
回复 使用道具 举报
  1. public static void main(String[] args)
  2.      {
  3.                  char ch ='a';
  4.                  int n = (int)ch;
  5.                  System.out.println(n);
  6.      }
复制代码



先将a赋值给一个单字节变量 char ch = 'a';
然后,将ch这个变量转换成整型在赋值给一个变量 int n = (int)ch;
输出变量n System.out.println(n);其它的:
  1. class Change{
  2. public static void main(String[] args){

  3. short shortvar=0;
  4. int intvar=0;
  5. String stringvar;
  6. float floatvar=9.99f;
  7. double doublevar=99999999.99;
  8. char charvar='9';
  9. String intstring="10";
  10. String floatstring="10.1f";
  11. String longstring="99999999";
  12. String doubleString="99999999.9";
  13. String s1="0";
  14. String s2="abc";
  15. String s3="true";

  16. //1.short-->int
  17. intvar=shortvar;
  18. System.out.println(intvar);

  19. //2.int-->short
  20. shortvar= (short) intvar ;
  21. System.out.println(shortvar);

  22. //3.int->String
  23. intvar=1;
  24. stringvar=String.valueOf (intvar);
  25. System.out.println(stringvar);

  26. //4.float->String
  27. stringvar=String.valueOf (floatvar);
  28. System.out.println(stringvar);

  29. //5. double->String
  30. stringvar=String.valueOf (doublevar);
  31. System.out.println(stringvar);

  32. //6. char->String
  33. stringvar=String.valueOf (charvar);
  34. System.out.println(stringvar);

  35. //7 String->int、float、long、double
  36. int i=Integer.parseInt (intstring);
  37. float f= Float.parseFloat (floatstring);
  38. long lo=Long. parseLong (longstring);
  39. double d=Double. parseDouble(doubleString);
  40. System.out.println(i+"/n"+f+"/n"+lo+"/n"+d);

  41. //8 String->byte、short
  42. byte b=Byte.parseByte(s1);
  43. short sh=Short.parseShort(s1);
  44. System.out.println(b+"/n"+sh) ;

  45. //9 String->char
  46. char a=s2.charAt(0);
  47. System.out.println(a);

  48. //10 String-->boolean
  49. boolean flag=Boolean.getBoolean(s3);
  50. System.out.println(s3);


  51. }
  52. }
复制代码




评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
97为a的ASCII码值
public class Test {
        public static void main(String[] args)
    {
            int c='a';//把a的ASCII码值赋值给变量c 这是a为97
            char ch='a';//把字符a赋值给ch
            System.out.println(c);
            System.out.println(ch);
    }
}
输出结果为:
97
a

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 tacyjay在路上 于 2014-3-7 02:19 编辑

4楼回答的很全面,高手啊。。。
我只说一句,看毕老师的视频,要小心字符本身被“提升”。

  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char n = 'a';
  6.                 int m =32;
  7.                 System.out.println(n); //输出的为字符a。
  8.                 System.out.println(n-m); // 因为int定义的常数m,占4个8位(4个字节),而char所定义的字符n占2个8位(2个字节),因此运算结果被提升4个8位,即int型。
  9.                 System.out.println((char)(n-m)); //将上面被提升的值强制转换,结果就是字符A。

  10.         }
  11. }
复制代码

运行结果:

a
65
A



评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
  1. class TTT
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char ch='a';
  6.                 int x=(int)ch;

  7.                 sop("ch="+ch);
  8.                 sop("x="+x);
  9.                 sop('a');
  10.                
  11.         }
  12.         public static void sop(Object obj)
  13.         {
  14.                 System.out.println(obj);
  15.         }
  16. }
复制代码

输出结果为
ch=a
x=97
a
顺便提一句关于类型提升的一个问题:
  System.out.println(’a’+1)与System.out.println(“”+’a’+1) 的区别。
  System.out.println(’a’+1)
  这里字符a会被自动提升为int类型,然后跟1相加,得到的结果是int类型,为98
  System.out.println(“”+’a’+1)
  实现了字符串相连,输出结果为a1

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马