这基本上是我所拥有的,一切正常,但由于某种原因我无法将字符输入数组。
如果您能向我解释为什么它不起作用,将不胜感激。这样做的目的是将一系列字符输入到数组中,并计算其中存在的 ''(间隙)的数量。
粗体部分是我目前遇到问题的地方。
import java.util.*;
public class Test4c{
public static void main(String[] args){
Scanner x = new Scanner(System.in);
Scanner a = new Scanner(System.in);
int size;
System.out.println("Please input the size of the array.");
size = x.nextInt();
char[] test = new char[size];
System.out.println("Please input " + size + " characters.");
//ask user to input number of characters
for(int i = 0; i<size; i++){
**test[i] = a.next().toCharArray();**
}
int s;
int e;
System.out.println("Please input the starting value of the search.");
s = x.nextInt();
System.out.println("Please input the ending value of the search.");
e = x.nextInt();
}
public static int spaceCount(char[]arr, int s, int e){
int count = 0;
if (s<= e) {
count = spaceCount(arr,s+1, e);
/*counter set up to cause an increase of "s" so
* the array is traversed until point "e"*/
if (arr[s] == ' ' ) {
count++;
}
}
return count;// return the number of spaces found
}
}
当你强制运行你的代码时,你会得到这样的错误堆栈
线程"main"中的异常 java.lang.RuntimeException: Uncompilable 源代码 - 不兼容的类型:char[] 无法转换为 char 在test4c。Test4c.main(Test4c.java:26) Java Result: 1
很明显,为什么你会收到这样的消息?
您尝试在接受字符而不是字符数组的索引中插入 char 数组char[] test
这是你所拥有的:
for(int i = 0; i<size; i++){
test[i] = a.next().toCharArray();
}
从您所拥有的,我认为您只想转换为a.next()
字符数组,这是您已经定义的test
char[] test = new char[size];
您可以更改必须更改的内容
test = a.next().toCharArray();
问题是toCharArray
返回一个数组,并且您无法将数组放入数组中。试试这个:
Char[] test = a.next().toCharArray();