📜  java 字符串转十进制 - Java (1)

📅  最后修改于: 2023-12-03 15:16:00.143000             🧑  作者: Mango

Java字符串转十进制

在Java中,将字符串转换为十进制数字是一种基本的操作。这通常涉及到将字符串解析为数字,并确保结果与所需的数据类型匹配。本文将介绍Java中实现字符串转十进制的方法。

方法一:使用Java自带的方法

Java提供了将字符串转换为十进制数字的内置方法Integer.parseInt()Double.parseDouble()Integer.parseInt()方法将字符串转换为整数,而Double.parseDouble()方法将字符串转换为浮点数。以下是使用这些方法的示例代码:

String str = "100";
int num = Integer.parseInt(str);
double decimal = Double.parseDouble(str);

在这个例子中,str变量包含一个字符串"100"。使用Integer.parseInt()方法将其转换为整数,并将结果分配给num变量。同样,使用Double.parseDouble()方法将字符串转换为浮点数,并将结果分配给decimal变量。

请注意,对于Integer.parseInt()方法,如果字符串不是有效的整数格式,则会抛出NumberFormatException异常。同样,对于Double.parseDouble()方法,如果字符串不是有效的浮点数格式,则会抛出NumberFormatException异常。

方法二:使用自定义算法

另一种方法是编写自定义代码将字符串转换为十进制数字。以下是一种将字符串转换为整数的方法:

public static int parseInt(String str) {
    int num = 0;
    boolean isNeg = false;

    str = str.trim();

    if (str.charAt(0) == '-') {
        isNeg = true;
        str = str.substring(1);
    }

    for (int i = 0; i < str.length(); i++) {
        char c = str.charAt(i);
        if (Character.isDigit(c)) {
            num = num * 10 + (c - '0');
        } else {
            throw new NumberFormatException("Invalid character found: " + c);
        }
    }

    return isNeg ? -num : num;
}

在这个例子中,我们首先检查字符串的第一个字符是否为-,如果是,则说明这是一个负数。然后我们遍历字符串中的每个字符,如果字符是数字,则将其与当前数字的乘数相乘,并将结果相加。最后,我们根据字符串是否以-开头返回数字的正负。

关于将字符串转换为浮点数的自定义方法,请参见这个Stack Overflow帖子

结论

在Java中将字符串转换为十进制数字的方法有两种:使用Java自带的方法和编写自定义代码。Java自带的方法是更简单的方法,但使用自定义代码可以更好地了解将字符串转换为数字的过程。无论您选择哪种方法,都要确保您的代码能够处理意外的输入,并在发生异常时适当地处理它们。