最近在学java的字符串这一节时接触到了ASCⅡ码,就想着写一个程序可以方便自己随时查阅。本程序的功能概述:
可以实现ASCⅡ编码与字符之间的相互转化,若输入汉字则会输出unicode码,容错率较好,但在目录界面输入整数以外的数值则会导致程序崩溃。
import java.util.Scanner;
public class Asc{//查询asc码与字符之间的互相转化关系,且具有较好的容错率,
//可以判断asc码是否正确,若输入汉字则会输出unicode码
public static void main(String[]args){
Scanner input = new Scanner(System.in);
boolean a = true;
while(a){
System.out.println("输入 1 查询Asc码对应字符; "+
"输入 2 查询字符对应Asc码; 输入 3 退出程序。");
int xuanze = input.nextInt();
switch(xuanze){
case 1 :
boolean b = true;
while(b){
System.out.print("请输入Asc码:");
int asc = input.nextInt();
if(asc<=32&&asc>=0||asc==127){
System.out.println(asc+" 对应字符无特定图案显示。");
}
else
if(asc<0||asc>127){
System.out.println("请输入正确的asc码!");
}
else{
System.out.print(asc+" 对应的字符为:");
char zifu = (char)asc;
System.out.println(zifu);
}
boolean c = true;
while(c){
System.out.println("1:继续查询;2:返回上一级;3:退出程序。");
int xuanze2 = input.nextInt();
switch(xuanze2){
case 1 : c = false; break;
case 2 : c = false; b = false; break;
case 3 : c = false; b = false; a = false; break;
default: System.out.println("请输入正确的选项!");
}
}
}
break;
case 2 :
boolean d = true;
while(d){
System.out.print("请输入字符:");
String s = input.next();
char zifu = s.charAt(0);
int asc = (int)zifu;
if(asc>=0&&asc<=127){
System.out.print(zifu+" 对应的Asc码为:");
System.out.println(asc);
}
else{
System.out.print(zifu+" 对应的unicode码为:");
System.out.println(asc);
}
boolean c = true;
while(c){
System.out.println("1:继续查询;2:返回上一级;3:退出程序。");
int xuanze2 = input.nextInt();
switch(xuanze2){
case 1 : c = false; break;
case 2 : c = false; d = false; break;
case 3 : c = false; d = false; a = false; break;
default: System.out.println("请输入正确的选项!");
}
}
}
break;
case 3 : a = false; break;
default: System.out.println("请输入正确的选项!");
}
}
System.out.println("感谢使用本程序!");
}
}
运行结果展示:
目前笔者学习的java知识还很少,目录还是用嵌套while循环解决的,但觉得这样还是太笨重了,如果大家有更好的方法也请跟我说一下,谢谢各位了!