Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带字母到整数转换的字符串数组_Java_Arrays - Fatal编程技术网

Java 带字母到整数转换的字符串数组

Java 带字母到整数转换的字符串数组,java,arrays,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]

我得到了这个字符串数组

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;
publicstaticint[]String2Int(String[]k){
int[]arrayBuffer=新int[k.length];
for(int i=0;i
我想要字符的十进制值,但运气不好。
谷歌只在字符串是数字时才提供帮助。

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

 arrayBuffer[i] =k[i].charAt(0);
这样,您就可以得到char的ASCII值,并将其分配给int

编辑:

您还可以使用注释中指出的
arrayBuffer[i]=Character.codePointAt(输入,0);

尝试以下方法: 解释
char
int
在Java中几乎是一样的。您不需要解析它,只需将它赋给
int[]
,就可以隐式地强制转换它。此外,您不应该将
String[]
作为参数,这毫无意义。字符串几乎已经是
char[]
。因此,要么使用
字符串
,要么使用
字符[]
。在我的示例中,我使用了
字符串
,因为这样调用更方便。

使用Java 8流API:

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

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

您指的是字符的十进制值是什么?您指的是字符的ascii值或类似于“43”=43?或“A”=65的解析?是的,A=65。很抱歉没有将其写入。why not
character.codepoint(输入,0)可能重复
@Tschallacka两者都很好。不是吗?它还处理边缘情况,在这些情况下,它并不总是简单的代码点是什么,它处理代理项对,因此您将获得一致的输出。arrayBuffer[i]=k[i]。charAt(0);完成了破坏程序的技巧。谢谢!@Tschallacka足够公平。更新了我的答案。
[72, 69, 76, 76, 79]
public static int[] convert(String[] strings)
{
    Objects.requireNonNull(strings);
    return Arrays.stream(strings)
            .mapToInt(str -> Character.getNumericValue(str.charAt(0)))
            .toArray();
}