【问题标题】:How do I change a given char array of numeric characters in a certain base to an int in that base?如何将某个基数中的给定 char 数字字符数组更改为该基数中的 int?
【发布时间】:2017-03-12 09:07:02
【问题描述】:

我有一个静态方法,它接受一个 char[] 和一个 int 作为其参数。 char[] 数组是一个数字字符数组,int 是给定数字的基数或基数。我正在尝试将 char 数组转换为给定基数中的整数类型,但我不知道如何做到这一点。到目前为止,我创建了一个方法,它接受一个以十为底的数字的 char[] 并将其转换为以 10 为底的 int。

这是我目前所拥有的:

public static int parseInt(char[] valueAsChars, int radix)
{

    char[] letters = {'A','B','C','D','E','F'};

    String convertedString = "";
    int convertedNumber = 0;
    int digit = 0;
    int counter = 1;
    char letter = '0';

    // converts array to String
    for(int arrayPlace = 0; arrayPlace < valueAsChars.length; arrayPlace++)
    {
        convertedString = convertedString + valueAsChars[arrayPlace];
    }

    //converts String to int
    for(int stringPlace = convertedString.length() - 1; stringPlace >= 0; stringPlace--)
    {
        digit = (convertedString.charAt(stringPlace)-'0');
        convertedNumber += digit * counter;
        counter *= radix;
    }
    return convertedNumber;
}

除了基数不同的数字,我该怎么做?

【问题讨论】:

  • 你能详细说明你迷路的地方吗?
  • 我对如何将特定基数(基数)中给出的 char 数组更改为同一基数的 int 感到困惑。例如,如果为十六进制数字给出一个字母,例如 {'1','2','3','A'} 我将如何在 int 值中表示它?

标签: java arrays methods integer


【解决方案1】:

尝试使用现有的 Java 方法:

public static int parseInt(char[] valueAsChars, int radix) {    
    return Integer.parseInt(new String(valueAsChars), radix);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2013-11-23
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    相关资源
    最近更新 更多