任务描述

本关任务:使用 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 **********/
    }
}