任务描述
本关任务:使用 Byte 类的定义与方法,完成 Byte 类与基本数据类型的转换。
相关知识
Byte 类将基本类型为 byte 的值包装在一个对象中。一个 Byte 类的对象只包含一个类型为 byte 的字段。此外,该类还为 byte 和 String 的相互转换提供了方法,并提供了一些处理 byte 时非常有用的常量和方法。
Byte 类提供了两个构造方法来创建 Byte 对象:
- Byte(byte value):通过这种方法创建的 Byte 对象,可以表示指定的 byte 值。例如,下面的示例将 5 作为 byte 类型变量,然后再创建 Byte 对象;
1. byte my_byte = 5;
2. Byte b = new Byte(my_byte); // 以 byte 类型的变量为参数创建 Byte 类
- Byte(String s):通过这个方法创建的 Byte 对象,可表示 String 参数所指定的 byte 值。例如,下面的示例将 5 作为 String 类型变量,然后再创建 Byte 对象。
1. String my_byte = "5";
2. Byte b = new Byte(my_byte); // 以 String 类型的变量为参数创建 Byte 类
注意:必须使用数值型的 String 变量作为参数才能创建成功,否则会抛出 NumberFormatException 异常。
在 Byte 类内部包含了一些和 Byte 操作有关的方法,见下表。
方法 | 返回值 | 功能 |
byteValue() | byte | 以一个 byte 值返回 Byte 对象 |
compareTo(Byte bytel) | int | 在数字上比较两个 Byte 对象,返回两者相减后的差值 |
doubleValue() | double | 以一个 double 值返回此 Byte 的值 |
intValue() | int | 以一个 int 值返回此 Byte 的值 |
parseByte(String s) | byte | 将 String 型参数解析成等价的 byte 形式 |
toStringO | String | 返回表示此 byte 值的 String 对象 |
valueOf(String s) | Byte | 返回一个保持指定 String 所给出的值的 Byte 对象 |
equals(Object obj) | boolean | 将此对象与指定对象比较,如果调用该方法的对象与 obj 相等,则返回 true,否则返回 false |
我们来看几个示例:
- intValue():可以将 Byte 对象类型变成 int 的基础数据类型;
1. public class TestDemo {
2. public static void main(String[] args) {
3. // 定义一个 Byte 对象类型的变量
4. Byte a = new Byte(10);
5. // 将 a 类型转变为 int 的基础数据类型
6. int i = a.intValue();
7. System.out.print(i);
8. }
9. }
执行结果:
1. 10
- toString():返回一个表示该 Byte 值的 String 对象;
2. // 定义一个 Byte 类型的变量
3. Byte byte1 = new Byte(3);
4. // 将 Byte 值转化为 String 类型
5. String s = byte1.toString();
6. System.out.print(s);
执行结果:
1. 3
- valueOf(String s):返回保存指定的 String 值或数值型的 Byte 对象;
2. String a = "12";
3. // 将 String 型的数据转换为 Byte 对象
4. Byte aByte = Byte.valueOf(a);
5. System.out.println(aByte);
执行结果:
1. 12
- parseByte:将数字字符串转换为 byte 数值。
2. public class TestDemo {
3. public static void main(String[] args) {
4. String a = "12";
5. byte v = Byte.parseByte(a);
6. System.out.print(v);
7. }
8. }
执行结果:
1. 12
在 Byte 类中包含了很多的常量,其中较为常用的常量如下:
• MIN_VALUE:byte 类可取的最小值;
• MAX_VALUE:byte 类可取的最大值;
• SIZE:用于以二进制补码形式表示的 byte 值的位数;
• TYPE:表示基本类 byte 的 Class 实例。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中完成 Byte 类与基本数据类型之间的转换,具体要求如下:
- 获取键盘第一次输入的 byte 类型的值,以该值为参数创建一个 Byte 对象,命名为 aByte;
- 将 aByte 转换为 String 类型后输出,输出:“Byte类型转换为String类型后的结果为:xx”,其中 xx 为转换后的 String 值;
- 获取键盘第二次输入的 byte 类型的值,以该值为参数创建一个 Byte 对象,命名为 bByte;
- 将 bByte 转换为 float 类型后输出,输出:“Byte类型转换为float类型后的结果为:xx”,其中 xx 为转换后的 float 值;
- 比较 aByte 和 bByte 的值,返回两者的差值,输出:“aByte比较bByte后的结果为:xx”,xx 为比较后的差值。
/**
* 使用 Byte 类的定义与方法,完成 Byte 类与基本数据类型的转换。
*/
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 依次获取键盘两次输入的值
Scanner input = new Scanner(System.in);
String str1 = input.next();
String str2 = input.next();
// 分别以其为参数创建Byte对象
Byte aByte = new Byte(str1);
Byte bByte = new Byte(str2);
// 将 aByte 转换为 String 类型后输出
String str = aByte.toString();
System.out.println("Byte类型转换为String类型后的结果为:" + str);
// 将 bByte 转换为 float 类型后输出
float f = bByte.floatValue();
System.out.println("Byte类型转换为float类型后的结果为:" + f);
// 比较 aByte 和 bByte 的值,返回两者的差值
int a = aByte.compareTo(bByte);
System.out.println("aByte比较bByte后的结果为:" + a);
/********** End **********/
}
}