字符串数组与字母转换为int

时间:2018-03-19 08:08:29

标签: java arrays

我得到了这个字符串数组

String s1[] = {"H","E","L","L","O"};

以及将其转换为int

的方法
    public static int[] String2Int(String[] k){
    int[] arrayBuffer = new int[k.length];

    for (int i=0; i < k.length; i++)
    {
        //arrayBuffer[i] = Integer.parseInt(k[i]);
        arrayBuffer[i] = Integer.parseInt(k[i]);
    }
    return arrayBuffer;

我想要字符的十进制值,但没有运气得到它。 如果字符串是数字,谷歌只会提供帮助。

3 个答案:

答案 0 :(得分:2)

你不应该将它转换为整数。它应该是

 arrayBuffer[i] =k[i].charAt(0);

通过这种方式,您可以获得char的ASCII值并将其分配给int。

编辑:

您还可以使用评论中指出的arrayBuffer[i] = Character.codePointAt(input, 0);

答案 1 :(得分:1)

试试这个:

class MainClass
{
    public static void main(String[] args)
    {
        System.out.println(Arrays.toString(String2Int("HELLO")));
    }
    public static int[] String2Int(String k)
    {
        int[] arrayBuffer = new int[k.length()];

        for (int i = 0; i < arrayBuffer.length; i++)
        {
            //arrayBuffer[i] = Integer.parseInt(k[i]);
            arrayBuffer[i] = k.charAt(i);
        }
        return arrayBuffer;
    }
}

输出:

[72, 69, 76, 76, 79]

解释

Java中的

charint几乎相同。您不需要解析它,只需通过将其指定为int[]来隐式转换它。你也不应该以{{1​​}}为参数,这是没有意义的。字符串已经差不多是String[]。因此,请选择char[]String。在我的示例中,我使用了char[]因为调用更方便。

答案 2 :(得分:0)

使用Java 8 Stream API:

public static int[] convert(String[] strings)
{
    Objects.requireNonNull(strings);
    return Arrays.stream(strings)
            .mapToInt(str -> Character.getNumericValue(str.charAt(0)))
            .toArray();
}

我假设您不需要检查输入字符串是否只包含一个字符。