为了账号安全,请及时绑定邮箱和手机立即绑定

接受 int 输入并解析成 char

接受 int 输入并解析成 char

白衣染霜花 2022-01-12 14:06:16
所以我的主要内容在 2 天前被删除了,我的老师帮助了我一些switch代码。我昨天重建了代码,他昨天不在,无法帮助我。public static void main(String[] args) throws InterruptedException {    do {        try {            System.out.println("Enter your birthYear");            birthYear = Integer.parseInt(input.next());            int length = String.valueOf(birthYear).length();            System.out.println(length);            if (length != 4) {                lengthTest = false;                System.out.println("Invalid Choice");            } else {                lengthTest = true;            }            test = true;        } catch (Exception e) {            System.out.println("Invalid Choice");        }    } while (test == true ^ lengthTest != false);    do {        System.out.println("Please enter a number between 1-4 \n"                + "1 = AreaOfTriangle \n" +                 "----------------------------------\n" +                 "2 = HoursToDaysAndHours Calculator \n" +                 "---------------------------------- \n" +                 "3 = CelciusToFahrenheit Calculator \n" +                 "----------------------------------\n" +                 "4 = BirthdayGame \r\n" +                 "----------------------------------");        try {            choice = Integer.toString(input.nextInt()).charAt(0);            System.out.println(choice);        switch (choice) {        case 1:            aOT.areaOfTriangle();            break;        case 2:            hTDAH.hoursToDaysAndHours();            break;        case 3:            cTF.celciusToFahrenheit();        case 4:            System.out.println("Code not implemented");            break;        case 'e':            repeat = false;            break;            default:                System.out.println("");                break;        }         }catch (Exception e) {            System.out.println("Invalid Awnser");        }    } while (repeat == true);}我的问题是在我的开关盒中,我希望能够同时使用 int 和 Char。例如我想用 e 退出和 4 个数字
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您可以尝试使用 String 作为输入参数,然后将正确读取任何 int 值或 char 而无需转换它们:


      try {

           String choice = input.next();

           System.out.println(choice);

           switch (choice) {

           case "1":

               aOT.areaOfTriangle();

               break;

           case "2":

               hTDAH.hoursToDaysAndHours();

               break;

           case "3":

               cTF.celciusToFahrenheit();

           case "4":

               System.out.println("Code not implemented");

               break;

           case "e":

               repeat = false;

               break;

               default:

                   System.out.println("");

                   break;

        } 


查看完整回答
反对 回复 2022-01-12
?
四季花海

TA贡献1811条经验 获得超5个赞

您不能同时使用 int 和 chars,因为您只能使用一个变量,并且变量必须具有类型,但是:如果您将 char 或 Character 转换为 int,您将获得值。例如 ((int) 'e') 如果我没记错的话,计算结果为 101。(试试 System.out.println((int) 'e')); 所以在你的情况下,你可以切换 int 值并检测 1、2、3、4 和 101。你的默认值也应该抛出一个异常,你很好。



查看完整回答
反对 回复 2022-01-12
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您可以只使用char数字 1-4的表示形式:


char choice = input.next().charAt(0);

switch (choice) {

case '1':

    aOT.areaOfTriangle();

    break;

case '2':

    hTDAH.hoursToDaysAndHours();

    break;

case '3':

    cTF.celciusToFahrenheit();

case '4':

    System.out.println("Code not implemented");

    break;

case 'e':

    repeat = false;

    break;

default:

    System.out.println("");

    break;


查看完整回答
反对 回复 2022-01-12
  • 3 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信