ASCⅡ码与字符的相互转化

 最近在学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循环解决的,但觉得这样还是太笨重了,如果大家有更好的方法也请跟我说一下,谢谢各位了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值