黑马程序员技术交流社区
标题:
为什么我运行后,输入的字母会变成数字出来呢?
[打印本页]
作者:
李琼
时间:
2012-10-15 18:37
标题:
为什么我运行后,输入的字母会变成数字出来呢?
本帖最后由 liqiong0327 于 2012-10-22 19:15 编辑
import java.util.*;
public class Permutation {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Enter a string:");
String a = console.next();
char b = a.charAt(0);
char c = a.charAt(1);
char d = a.charAt(2);
System.out.println(b+c+d);
}
}
复制代码
为什么我运行后,输入的字母会变成数字出来。这是什么原因呢?
作者:
李琼
时间:
2012-10-15 18:47
import java.util.*;
public class ScannerTest {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("Enter a string:");
String a = console.next();
char b = (char)a.charAt(0);
char c = a.charAt(1);
char d = a.charAt(2);
System.out.println(b+""+c+d);
}
}
复制代码
好吧,自己动手丰衣足食哟~~~~~
作者:
范德农
时间:
2012-10-15 19:28
OK !虽然,你搞定了,但我觉得还是补充下解释比较好,原代码最后段为System.out.println(b+c+d); 这里的“+”默认为整型运算符,由于有“+”存在,在这里你输入的字符char便被默认为int类型,自动转码ASCII,所以输出的是数字。而当你加上""后,“+”便默认为连接符,输出的便是由输入字符组成的字符串了
作者:
崔政
时间:
2012-10-17 23:46
public class Test {
public static void main(String[] args){
Scanner console = new Scanner(System.in);
System.out.print("Enter a string:");
String a = console.next();
char b = a.charAt(0);
//System.out.println(b);
char c = a.charAt(1);
char d = a.charAt(2);
System.out.println(a);
System.out.println(b+c+d);
}
}
复制代码
因为你把它挨个弄成char类型的了,而在你输出的时候,因为+号,默认把三个字母的ASCII值加在一起了,比如说输入abc,结果就是294 97+98+99
至于你为什么加个a+" "+b+c,那是因为" "把他们提升成String类型(提升这词不知道用的合适不合适,大概就这个意思)。
作者:
曾浩
时间:
2012-10-18 11:22
byte short char在运算时会自动提升为int类型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2