如何确定Java中存储给定整数的合适数据类型?
Java数据类型匹配问题
给定一个数字,找出Java里所有能存储它的数据类型。举个例子:
- 数字741可以存入
short、int、long类型; - 但像-100000000000000这种超大数字,就只能用
long类型存储。
要求根据输入的数字,输出所有符合条件的数据类型。
各整数类型取值范围
Java的整数类型取值区间如下:
byte:-128 至 127short:-32768 至 32767int:-2147483648 至 2147483647long:-9223372036854775808 至 9223372036854775807
判断逻辑
从范围最小的类型开始逐一检查,只要数字落在该类型的取值区间内,就将该类型纳入可行列表,最后按范围从小到大输出所有符合条件的类型。如果数字超出long的范围,就输出无法存储的提示。
实现代码
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner input = new Scanner(System.in); int testCases = input.nextInt(); for (int i = 0; i < testCases; i++) { try { long num = input.nextLong(); System.out.println(num + " 可以存入以下类型:"); if (num >= Byte.MIN_VALUE && num <= Byte.MAX_VALUE) { System.out.println("* byte"); } if (num >= Short.MIN_VALUE && num <= Short.MAX_VALUE) { System.out.println("* short"); } if (num >= Integer.MIN_VALUE && num <= Integer.MAX_VALUE) { System.out.println("* int"); } System.out.println("* long"); } catch (Exception e) { System.out.println(input.next() + " 无法存入任何Java整数类型。"); } } input.close(); } }
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

