【问题标题】:How to use cast operator如何使用强制转换运算符
【发布时间】:2020-03-03 04:00:02
【问题描述】:

我目前正在处理作业中的一个问题。问题是:

"编写一个程序,提示用户输入一个0到35之间的整数,如果小于等于9,程序应该输出这个数字;否则,应该输出A代表10,B代表11 , C 表示 12,...,Z 表示 35。(提示:使用转换运算符,static_cast() 表示 >= 10 的数字。”

我不知道如何使用强制转换运算符,我需要一些指导。

这是我的代码:

import java.util.Scanner;
public class Question_4 {
public static void main(String args[]){
    Scanner sc = new Scanner(System.in);
    int integer = 0;

    System.out.println("Enter a number between 0 - 35: ");
    integer = sc.nextInt();

    if(integer <= 9){
        System.out.println("Number entered is " + integer);
    }
    else{

        System.out.println(static_cast.class<char>('A' + (integer - 
                                                            10)););
    }
}//END Main
}

【问题讨论】:

  • static_cast 是 C++ 的一部分,而不是 Java。您确定该作业是为 Java 设计的吗?
  • 是的。那就是问题
  • 我建议你和你的老师谈谈改变下一组学生的作业。当static_cast 在 Java 中不存在时,他们建议在 Java 中使用 static_cast,这对任何人来说都是不公平的。

标签: java typecast-operator


【解决方案1】:

你可以这样做:

System.out.println((char)((byte)'A' + (integer - 10)) );
  • (byte)'A' 将给出 'A' 字符 (97) 的 u 字节表示
  • (char) 会将数字转换回角色

【讨论】:

  • 哦,我明白了。谢谢你的提示。我刚写完
  • 您不需要转换为byte - 不管怎样,char 可以隐式转换为int。只需(char) ('A' + integer - 10) 即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多