输入一个0到9、a到z、A到Z的十六进制数,程序输出相应的 十进制数。
思考
- java是如何实现读取用户输入char类型的?
import java.util.*;
public class text {
public static void main(String[] args) {
System.out.println("a~f的unicode码值"+(int)'a'+ " ~" +(int)'f');
System.out.println("A~F的unicode码值"+(int)'A'+ " ~" +(int)'F');
System.out.println("0~9的unicode码值"+(int)'0'+ " ~" +(int)'9');
System.out.println("请输入一个字符(0~9、a~z、A~Z)");
Scanner x=new Scanner(System.in);
char a=x.next().charAt(0);
String value="";
if((int)a>=48&&(int)a<=57) {//若输入是数字
value+=a;
}
else if((int)a>=97&&(int)a<=102) {//若输入是小写字母
{
value+=a-87;
}
}
else if((int)a>=65&&(int)a<=70) {//若输入时数字
value+=a-55;
}
else
System.out.println("输入不正确!");
System.out.println(value);
}
}
需要注意的地方:
java中基本数据类型的输入包括整形的输入:in.nextInt();单精度浮点型:in.nextFloat();双精度浮点型:in.nextDouble();字符串类型:in.next();in.nextLine();那么,您是否以为char类型也如in.nextChar();这样呢?如果您这样写过,那么您一定见过这个error:“The method nextChar() is undefined for the type Scanner”。那么char类型该如何输入呢???
答案就是:
Scanner x= new Scanner(System.in);
char c = x.next().charAt(0);
这是一种变通的写法,相当于:
Scanner x= new Scanner(System.in);
String a=x.next();
char c=a.charAt(0);