黑马程序员技术交流社区
标题:
关于a的数值??
[打印本页]
作者:
漠然~回首℃
时间:
2014-3-7 00:08
标题:
关于a的数值??
请问a什么时候会是97,什么时候会直接输出a;一共有几种情况,举例看看谢谢各位啊!
作者:
欧阳疯
时间:
2014-3-7 00:24
a的ascll码是97 同时a本身又是个字符 当格式控制符是%d 要求输出的数值 此时输出97 当格式控制符是%c时 输出的是字符a
作者:
午夜b'Boy
时间:
2014-3-7 00:32
`a`前面没有字符串相连为97,前面有字符串相连为”a"输出
作者:
织语不如书
时间:
2014-3-7 00:34
'a'本身是字符型,直接打印字符型a那就是a;
把a转换成数值型且不损失数位的时候打印出来的是97,因为是数字嘛
还有楼上的输出格式这种考虑,也是一个意思
作者:
My_work
时间:
2014-3-7 00:40
public static void main(String[] args)
{
char ch ='a';
int n = (int)ch;
System.out.println(n);
}
复制代码
先将a赋值给一个单字节变量 char ch = 'a';
然后,将ch这个变量转换成整型在赋值给一个变量 int n = (int)ch;
输出变量n System.out.println(n);其它的:
class Change{
public static void main(String[] args){
short shortvar=0;
int intvar=0;
String stringvar;
float floatvar=9.99f;
double doublevar=99999999.99;
char charvar='9';
String intstring="10";
String floatstring="10.1f";
String longstring="99999999";
String doubleString="99999999.9";
String s1="0";
String s2="abc";
String s3="true";
//1.short-->int
intvar=shortvar;
System.out.println(intvar);
//2.int-->short
shortvar= (short) intvar ;
System.out.println(shortvar);
//3.int->String
intvar=1;
stringvar=String.valueOf (intvar);
System.out.println(stringvar);
//4.float->String
stringvar=String.valueOf (floatvar);
System.out.println(stringvar);
//5. double->String
stringvar=String.valueOf (doublevar);
System.out.println(stringvar);
//6. char->String
stringvar=String.valueOf (charvar);
System.out.println(stringvar);
//7 String->int、float、long、double
int i=Integer.parseInt (intstring);
float f= Float.parseFloat (floatstring);
long lo=Long. parseLong (longstring);
double d=Double. parseDouble(doubleString);
System.out.println(i+"/n"+f+"/n"+lo+"/n"+d);
//8 String->byte、short
byte b=Byte.parseByte(s1);
short sh=Short.parseShort(s1);
System.out.println(b+"/n"+sh) ;
//9 String->char
char a=s2.charAt(0);
System.out.println(a);
//10 String-->boolean
boolean flag=Boolean.getBoolean(s3);
System.out.println(s3);
}
}
复制代码
作者:
小脚印
时间:
2014-3-7 00:56
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
作者:
tacyjay在路上
时间:
2014-3-7 01:45
本帖最后由 tacyjay在路上 于 2014-3-7 02:19 编辑
4楼回答的很全面,高手啊。。。
我只说一句,看毕老师的视频,要小心字符本身被“提升”。
class Test
{
public static void main(String[] args)
{
char n = 'a';
int m =32;
System.out.println(n); //输出的为字符a。
System.out.println(n-m); // 因为int定义的常数m,占4个8位(4个字节),而char所定义的字符n占2个8位(2个字节),因此运算结果被提升4个8位,即int型。
System.out.println((char)(n-m)); //将上面被提升的值强制转换,结果就是字符A。
}
}
复制代码
运行结果:
a
65
A
作者:
love~陌
时间:
2014-3-7 07:27
class TTT
{
public static void main(String[] args)
{
char ch='a';
int x=(int)ch;
sop("ch="+ch);
sop("x="+x);
sop('a');
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
复制代码
输出结果为
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
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2