以下是代码:
class Test {
public static void main (String[] args) throws Exception {
java.io.File fail = new java.io.File("C:/Users/Student/Desktop/Morze.txt");
java.util.Scanner sc = new java.util.Scanner(fail);
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
int[] letter = new int[26];
int[] sumbol = new int[26];
for (int i = 0; i < lst.length; i++)
System.out.print(lst[i] + " ");
System.out.println();
// How to add?
}
}
}
请解释如何将列表字母和符号中的所有字母添加到Sumbol列表中?
文件Morze.txt的内容:
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
谢谢!
答案 0 :(得分:1)
你没有列表,你有一个数组。您似乎想要将值添加到两个数组。但是,您的循环中似乎有一些代码不应该在循环中。
此外,您的数据是text / String而不是numbers / int值。
String[] letter = new String[26];
String[] symbol = new String[26];
int count = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
letter[count] = lst[0];
symbol[count] = lst[1];
count++;
}
for (int i = 0; i < count; i++)
System.out.println(letter[i] + " " + symbol[i]);
答案 1 :(得分:1)
我将提供一个解决方案来修复您的实现,因为我认为它可以帮助您理解一些概念。但是我会建议你一旦工作就回去看看Java List界面并重新编写你的代码。列表是维护可能长度增长或缩小的序列的更清晰的方式,并将大大降低代码的复杂性。
您应该首先将字母和符号数组声明移出while循环。 Java中块中的变量的范围限定在其边界内。换句话说,while循环外没有语句可以看到任何一个数组。这会产生副作用,即使用扫描仪为您解析的每一行创建一个新数组。
int[] letter = new int[26];
int[] sumbol = new int[26];
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
接下来,您需要知道将当前符号/字母放在数组中的位置,即索引。因此,您需要计算到目前为止已经处理了多少行/符号。
int[] letter = new int[26];
int[] sumbol = new int[26];
int numberOfSymbolsProcessed = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
现在你有两个数组和一个索引,将符号和字母添加到数组中,如下所示......
int[] letter = new int[26];
int[] sumbol = new int[26];
int numberOfSymbolsProcessed = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
letter[numberOfSymbolsProcessed] = lst[0];
sumbol[numberOfSymbolsProcessed] = lst[1];
numberOfSymbolsProcessed = numberOfSymbolsProcessed + 1;
答案 2 :(得分:0)
这将是List
接口的一个很好的用例。
List<String> list = new LinkedList<String>();
while (sc.hasNextLine()) {
String line = sc.nextLine();
list.addAll(Arrays.asList(line.split(" ")));
}
答案 3 :(得分:0)