我得到了这个字符串数组
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;
我想要字符的十进制值,但没有运气得到它。 如果字符串是数字,谷歌只会提供帮助。
答案 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]
char
和int
几乎相同。您不需要解析它,只需通过将其指定为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();
}
我假设您不需要检查输入字符串是否只包含一个字符。