Java将16进制的字符串转换为10进制数的方法

简介: 【6月更文挑战第27天】Java将16进制的字符串转换为10进制数的方法

在Java中将16进制的字符串转换为10进制数,可以使用多种方法。以下是几种常见的实现方式:

方法1:使用Integer.parseInt()Long.parseLong()

Java的Integer.parseInt()Long.parseLong()方法都支持将字符串解析为整数,并且可以指定基数(radix)。对于16进制字符串,指定基数为16即可。

String hexString = "1A3F"; // 要转换的16进制字符串

// 使用Integer.parseInt()转换为10进制整数(适合较小的数值,不超过Integer.MAX_VALUE)
int decimalInt = Integer.parseInt(hexString, 16);

// 使用Long.parseLong()转换为10进制长整数(适合较大的数值,不超过Long.MAX_VALUE)
long decimalLong = Long.parseLong(hexString, 16);

System.out.println("Decimal integer: " + decimalInt);
System.out.println("Decimal long: " + decimalLong);

方法2:使用BigInteger

对于超出IntegerLong范围的大数值16进制字符串,可以使用java.math.BigInteger类的new BigInteger(String, int)构造函数进行转换。

import java.math.BigInteger;

String hexString = "1A3F"; // 要转换的16进制字符串

// 使用BigInteger转换为任意大小的10进制数
BigInteger decimalBigInt = new BigInteger(hexString, 16);

System.out.println("Decimal BigInteger: " + decimalBigInt);

方法3:手动实现转换算法

如果您需要自行实现转换逻辑,可以遍历16进制字符串,将每个字符转换为其对应的10进制数值,然后累加这些值。这种方式对于学习和理解转换原理有所帮助,但在实际应用中通常推荐使用内置的转换方法。

String hexString = "1A3F"; // 要转换的16进制字符串

int decimalValue = 0;
for (int i = 0; i < hexString.length(); i++) {
   
    char c = hexString.charAt(i);
    int digitValue;

    if (c >= '0' && c <= '9') {
   
        digitValue = c - '0';
    } else if (c >= 'A' && c <= 'F') {
   
        digitValue = c - 'A' + 10;
    } else if (c >= 'a' && c <= 'f') {
   
        digitValue = c - 'a' + 10;
    } else {
   
        throw new IllegalArgumentException("Invalid hexadecimal character: " + c);
    }

    decimalValue = decimalValue * 16 + digitValue;
}

System.out.println("Decimal value (manually calculated): " + decimalValue);

以上就是Java中将16进制字符串转换为10进制数的几种常用方法。根据实际需求(数值大小、性能要求、代码简洁性等),可以选择合适的方法进行转换。

目录
相关文章
|
2天前
|
Java
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
9 1
|
2天前
|
Java 编译器
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
5 1
|
2天前
|
安全 Java UED
深度解析Java中方法内的异步调用实践与应对方案
深度解析Java中方法内的异步调用实践与应对方案
8 1
|
2天前
|
监控 Java
优化Java应用的日志记录方法
优化Java应用的日志记录方法
|
2天前
|
设计模式 安全 Java
在Java中实现单例模式的正确方法
在Java中实现单例模式的正确方法
|
2天前
|
Java 编译器 索引
解决Java中的NoSuchElementException异常的常见方法
解决Java中的NoSuchElementException异常的常见方法
|
2天前
|
存储 缓存 安全
Java List操作详解及常用方法
Java List操作详解及常用方法
|
2天前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
9 0
|
2天前
|
存储 Java
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
7 0
|
2天前
|
存储 缓存 NoSQL
Java中Redis常用的20个方法
Java中Redis常用的20个方法
7 0