如何通过用户输入将字符输入到数组中?

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();