java - 将字符串输入数组,然后将字符串拆分为单个字符数组

标签 java arrays string

我正在用java编写一个程序,允许用户输入n并将它们的字符串放入数组中。然后,程序获取这些字符串并将它们拆分为单个字符,并将这些字符放入新的字符数组中。

我正在尝试做的一个例子如下:

  • 输入n:3
  • 输入字符串:“Cat”、“Dog”、“Mouse”
  • 原始输入数组:[Cat][Dog][Mouse]
  • 所需输出数组:[C][a][t][D][o][g][M][o][u][s][e]

我的代码在运行时出现了一些问题:

  1. 我在接收输入字符串的代码行中遇到异常错误。代码行:exp[i] = input.nextLine();
  2. Netbeans IDE 告诉我它找不到我尝试使用的 split 函数的符号。

我不确定我的代码有什么问题,但我觉得至少我输入字符串的部分应该可以工作。我意识到我还没有任何输出代码,因为我现在只是想让输入部分正常工作。任何建议将不胜感激!

public class Strings {
  Scanner input = new Scanner(System.in);
  int n; //number of strings
  String[] exp = new String[n]; //input strings
  char[] tokens = new char[n]; //individual char characters

  //Gather data

  public void SetNumberStrings(){
      n = input.nextInt();
  }

  public void SetExpressions(){
      for (int i = 0; i < n; i++){
          exp[i] = input.nextLine();
      }
  }

  public void SplitExpressions(){
      for (int i = 0; i < n; i++){
          tokens[i] = exp.split(" ");
      }
  }
  public static void main(String[] args) {
       Strings exp1 = new Strings();
       exp1.SetNumberStrings();
       exp1.SetExpressions();
       exp1.SplitExpressions();

  }
}

最佳答案

您的代码存在多个问题:

  1. 数组初始化不是这样工作的。有int n; //number of strings作为类字段,意味着它将被初始化 为 0,导致数组的长度为 0。要解决此问题 您可以在给n赋值后声明您的数组.
  2. 在线tokens[i] = exp.split(" ");确实有合集 错误,因为您试图调用 exp 上的 split 方法 数组,但 split 方法来自 String 类。所以你需要 调用exp[i].split
  3. split方法并没有做你认为它正在做的事情。我觉得你 正在寻找 toCharArray()方法。
  4. tokens数组应该具有您所输入的所有字符串的长度 已扫描。

关于java - 将字符串输入数组,然后将字符串拆分为单个字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835544/

相关文章:

java - RMI 和异常

java - 将 java 字节数组转换为字符串

java - 暴力破解: count number of sub strings in a string array

javascript - 带有 JavaScript 的 HTML 打字机效果

c++ - 使用 memcpy 填充后删除动态二维数组时中止(核心转储)

java - 使用 ScriptRunner "runScript"方法时,如果一次插入失败则回滚

java - 数字格式异常,真的卡住了

java - 网站和 iPhone 原型(prototype)

php数组通过复制值或引用分配?

c - 如何在 C 编程中搜索二维字符串数组中的单词