Java - Byte parseByte() 方法



描述

Java Byte parseByte(String s, int radix) 方法将字符串参数解析为第二个参数指定的基数中的带符号字节。

字符串中的字符必须全部为指定基数的数字(由 Character.digit(char, int) 返回非负值决定),但第一个字符可以是 ASCII 减号 '−' ('\u002D') 表示负值,或 ASCII 加号 '+' ('\u002B') 表示正值。返回生成的字节值。

如果出现以下任何情况,则会抛出 NumberFormatException 类型的异常:

  • 第一个参数为空或长度为零的字符串。

  • 基数小于 Character.MIN_RADIX 或大于 Character.MAX_RADIX。

  • 字符串的任何字符都不是指定基数的数字,但第一个字符可以是减号 '−' ('\u002D') 或加号 '+' ('\u002B'),前提是字符串长度大于 1。

  • 字符串表示的值不是 byte 类型的值。

声明

以下是 java.lang.Byte.parseByte() 方法的声明

public static byte parseByte(String s, int radix)
   throws NumberFormatException

参数

  • s − 包含要解析的字节表示形式的字符串

  • radix − 解析 s 时使用的基数

返回值

此方法返回由指定基数的字符串参数表示的字节值。

异常

NumberFormatException − 如果字符串不包含可解析的字节。

将包含八进制值的字符串解析为字节的示例

以下示例演示了 Byte parseByte() 方法的使用,用于解析具有八进制值的字符串。我们创建了两个字节变量和两个具有有效值的字符串变量。然后使用 parseByte() 方法,我们通过将字符串解析为八进制来获取字节,然后打印结果。

package com.tutorialspoint;

public class ByteDemo {
   public static void main(String[] args) {

      // create 2 byte primitives bt1, bt2
      byte bt1, bt2;

      // create and assign values to String's s1, s2
      String s1 = "+123";
      String s2 = "-12";

      /**
       *  static method is called using class name. 
       *  assign parseByte result on s1, s2 to bt1, bt2
       */
      bt1 = Byte.parseByte(s1, 8);
      bt2 = Byte.parseByte(s2, 8);

      String str1 = "Parse byte value of " + s1 + " is " + bt1;
      String str2 = "Parse byte value of " + s2 + " is " + bt2;

      // print bt1, bt2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Parse byte value of +123 is 83
Parse byte value of -12 is -10

将包含十六进制值的字符串解析为字节的示例

以下示例演示了 Byte parseByte() 方法的使用,用于解析具有十六进制值的字符串。我们创建了两个字节变量和两个具有有效值的字符串变量。然后使用 parseByte() 方法,我们通过将字符串解析为十六进制值来获取字节,然后打印结果。

package com.tutorialspoint;

public class ByteDemo {
   public static void main(String[] args) {

      // create 2 byte primitives bt1, bt2
      byte bt1, bt2;

      // create and assign values to String's s1, s2
      String s1 = "12";
      String s2 = "-1a";

      /**
       *  static method is called using class name. 
       *  assign parseByte result on s1, s2 to bt1, bt2
       */
      bt1 = Byte.parseByte(s1, 16);
      bt2 = Byte.parseByte(s2, 16);

      String str1 = "Parse byte value of " + s1 + " is " + bt1;
      String str2 = "Parse byte value of " + s2 + " is " + bt2;

      // print bt1, bt2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Parse byte value of 12 is 18
Parse byte value of -1a is -26

解析包含无效十六进制值的字符串以获取字节时出现异常的示例

以下示例演示了 Byte parseByte() 方法的使用,用于解析具有无效十六进制值的字符串。我们创建了两个字节变量和两个字符串变量,其值为无效值,因为值超出范围。然后,当我们尝试使用 parseByte() 方法获取字节时,将抛出 NumberFormatException。

package com.tutorialspoint;

public class ByteDemo {
   public static void main(String[] args) {

      // create 2 byte primitives bt1, bt2
      byte bt1, bt2;

      // create and assign values to String's s1, s2
      String s1 = "123";
      String s2 = "14";

      /**
       *  static method is called using class name. 
       *  assign parseByte result on s1, s2 to bt1, bt2
       */
      bt1 = Byte.parseByte(s1, 16);
      bt2 = Byte.parseByte(s2, 16);
      String str1 = "Parse byte value of " + s1 + " is " + bt1;
      String str2 = "Parse byte value of " + s2 + " is " + bt2;

      // print bt1, bt2 values
      System.out.println( str1 );
      System.out.println( str2 );
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Exception in thread "main" java.lang.NumberFormatException: Value out of range. Value:"123" Radix:16
	at java.base/java.lang.Byte.parseByte(Byte.java:154)
	at com.tutorialspoint.ByteDemo.main(ByteDemo.java:18)
java_lang_byte.htm
广告