由于我无法找到将字符串数组转换为整数数组的简单方法,因此我查找了一个方法的示例,这是我最终得到的结果:
private int[] convert(String string) {
int number[] = new int[string.length()];
for (int i = 0; i < string.length(); i++) {
number[i] = Integer.parseInt(string[i]); // error here
}
return number;
}
parseInt需要一个字符串,这是字符串[i],但错误告诉我“表达式的类型必须是数组类型,但它已解析为String”
我无法弄清楚我的代码有什么问题。
编辑:我是个白痴。谢谢所有这一切都很明显。答案 0 :(得分:8)
您正在尝试读取字符串,就好像它是一个数组一样。我假设你一次尝试通过一个字符串。为此,请使用.charAt()
private int[] convert(String string) {
int number[] = new int[string.length()];
for (int i = 0; i < string.length(); i++) {
number[i] = Integer.parseInt(string.charAt(i)); //Note charAt
}
return number;
}
但是,如果您希望字符串是字符串数组,则会在函数原型中省略数组标识符。使用以下更正版本:
private int[] convert(String[] string) { //Note the [] after the String.
int number[] = new int[string.length()];
for (int i = 0; i < string.length(); i++) {
number[i] = Integer.parseInt(string[i]);
}
return number;
}
答案 1 :(得分:4)
您的代码中有错误。使用此代码:
private int[] convert(String[] string) {
int number[] = new int[string.length];
for (int i = 0; i < string.length; i++) {
number[i] = Integer.parseInt(string[i]); // error here
}
return number;
}
答案 2 :(得分:2)
您的方法的参数是String而不是String数组。您不能使用string [i]访问String中的元素。如果要从String中实际获取单个字符,请使用'String.charAt(..)'或'String.substring(..)'。请注意,charAt(..)
将返回char
,但这些内容很容易转换为字符串。
答案 3 :(得分:0)
使用 Arrays.asList( YourIntArray )创建arraylist
Integer[] intArray = {5, 10, 15}; // cannot use int[] here
List<Integer> intList = Arrays.asList(intArray);
或者,要解耦两个数据结构:
List<Integer> intList = new ArrayList<Integer>(intArray.length);
for (int i=0; i<intArray.length; i++)
{
intList.add(intArray[i]);
}
甚至更多:
List<Integer> intList = new ArrayList<Integer>(Arrays.asList(intArray));
。#这对我有用