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



这基本上是我所拥有的,一切正常,但由于某种原因我无法将字符输入数组。

如果您能向我解释为什么它不起作用,将不胜感激。这样做的目的是将一系列字符输入到数组中,并计算其中存在的 ''(间隙)的数量。

粗体部分是我目前遇到问题的地方。

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

相关内容

  • 没有找到相关文章

最新更新