如何通过用户输入将字符输入到数组中?
How do input characters into an array through user input?
这基本上就是我所拥有的,一切正常,但由于某种原因我无法将字符输入到数组中。
如果您能向我解释为什么它不起作用,我们将不胜感激。
这样做的目的是将一系列字符输入到数组中,并计算其中存在的 ' '(空格)的数量。
粗体部分是我目前遇到的问题。
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
}
}
问题是 toCharArray
returns 一个数组,你不能把一个数组放入一个数组中。试试这个:
Char[] test = a.next().toCharArray();
当你强制运行你的代码时,你会得到这样的错误堆栈
Exception in thread "main" java.lang.RuntimeException: Uncompilable
source code - incompatible types: char[] cannot be converted to char
at test4c.Test4c.main(Test4c.java:26) Java Result: 1
明明白白为什么会收到这样的信息?
您尝试在 char[] test
的索引中插入一个 char 数组,接受 char 而不是 char 数组
这是你拥有的:
for(int i = 0; i<size; i++){
test[i] = a.next().toCharArray();
}
根据您所拥有的,我认为您只想将 a.next()
转换为您已经定义
的 test
字符数组
char[] test = new char[size];
你可以改变你所拥有的
test = a.next().toCharArray();
这基本上就是我所拥有的,一切正常,但由于某种原因我无法将字符输入到数组中。
如果您能向我解释为什么它不起作用,我们将不胜感激。 这样做的目的是将一系列字符输入到数组中,并计算其中存在的 ' '(空格)的数量。
粗体部分是我目前遇到的问题。
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
}
}
问题是 toCharArray
returns 一个数组,你不能把一个数组放入一个数组中。试试这个:
Char[] test = a.next().toCharArray();
当你强制运行你的代码时,你会得到这样的错误堆栈
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types: char[] cannot be converted to char at test4c.Test4c.main(Test4c.java:26) Java Result: 1
明明白白为什么会收到这样的信息?
您尝试在 char[] test
的索引中插入一个 char 数组,接受 char 而不是 char 数组
这是你拥有的:
for(int i = 0; i<size; i++){
test[i] = a.next().toCharArray();
}
根据您所拥有的,我认为您只想将 a.next()
转换为您已经定义
test
字符数组
char[] test = new char[size];
你可以改变你所拥有的
test = a.next().toCharArray();