JAVA 经典操作习题(3)

该程序使用Java编写,实现了用户选择十六进制到十进制或者十进制到十六进制的转换。在十六进制转十进制时,程序检查输入的有效性,确保所有字符属于十六进制字符集。如果输入无效,程序会提示并结束。十进制转十六进制则直接使用内置函数完成转换,并以大写字母显示结果。
摘要由CSDN通过智能技术生成

题目:写一个程序,实现十六进制与十进制数之间的相互转换。程序提供两个选项,分别表示不同的转换,如:
1.十六进制转换为十进制
2.十进制转换为十六进制
--十六进制转换为十进制时,用户输入为一十六进制字符串,其中字母大小写可通用,程序通过计算显示该十六进制数对应十进制数,如果其中含有非法十六进制字符,则提示输入无效,程序结束
-- 十进制转换为十六进制数时,用户输入为一整数,通过计算显示该十进制数对应的十六进制字符串,用大写字母显示

package Problems.C0315;
import java.util.*;
public class test4 {
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        System.out.println("请输入你的选择:");
        System.out.println("1.十六进制转十进制");
        System.out.println("2.十进制转十六进制");
        System.out.print("您的输入:");
        int num=input.nextInt();
        if(num==1){
            System.out.print("请输入十六进制数:");
            //输入十六进制数
            String hex=new String();
            hex=input.next();//不要用nextline
            //十六进制 转 十进制
            boolean flag=true;//设置开关,便于在循环语句和外部非循环语句都能判断
            char a;
            String str;
            String sixteen="0123456789ABCDEF";
            for(int i=0;i<hex.length();i++){//判断语句必须循环判断
                a=hex.charAt(i);//将输入的字符串每一位值赋给a然后与十六进制字符串比较,看是否匹配
                str=String.valueOf(a);//将a转换成字符串
                if(!sixteen.contains(str)){//判断标准十六进制是否包含输入的字符串
                    System.out.println("输入无效!");
                    flag=false;
                    break;
                }
            }
            if(flag==true){//输出语句不能进入循环,不然会一直输出,所以要用开关判断是否输出
                System.out.println( hex+"的十进制是"+Integer.parseInt(hex.toUpperCase(),16));
            }
        }
        if(num==2){
            System.out.print("请输入十进制数:");
            //输入十进制数
            int ten=input.nextInt();
            //十进制  转 十六进制
            String str2=Integer.toHexString(ten);//分开写是为了下面的转大写操作
            System.out.println(ten+"的十六进制数是"+str2.toUpperCase());//此方法返回由十六进制的参数(以16为基数)表示的字符串
        }
    }
}

十六进制转十进制的判断时,用bool开关是关键!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值