我正在用java编写一个程序,允许用户输入n
并将它们的字符串放入数组中。然后,程序获取这些字符串并将它们拆分为单个字符,并将这些字符放入新的字符数组中。
我正在尝试做的一个例子如下:
- 输入
n
:3 - 输入字符串:
“Cat”、“Dog”、“Mouse”
- 原始输入数组:
[Cat][Dog][Mouse]
- 所需输出数组:
[C][a][t][D][o][g][M][o][u][s][e]
我的代码在运行时出现了一些问题:
- 我在接收输入字符串的代码行中遇到异常错误。代码行:
exp[i] = input.nextLine();
- 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();
}
}
最佳答案
您的代码存在多个问题:
- 数组初始化不是这样工作的。有
int n; //number of strings
作为类字段,意味着它将被初始化 为 0,导致数组的长度为 0。要解决此问题 您可以在给n
赋值后声明您的数组. - 在线
tokens[i] = exp.split(" ");
确实有合集 错误,因为您试图调用 exp 上的 split 方法 数组,但 split 方法来自 String 类。所以你需要 调用exp[i].split
-
split
方法并没有做你认为它正在做的事情。我觉得你 正在寻找toCharArray()
方法。 -
tokens
数组应该具有您所输入的所有字符串的长度 已扫描。
关于java - 将字符串输入数组,然后将字符串拆分为单个字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835544/