有人知道我的代码有什么问题吗?它在Java GUI中不断收到错误输出 循环2和循环3在调试后出现错误,我不知道怎么了
private void butActionPerformed(java.awt.event.ActionEvent evt) {
String input1 = txtInput.getText();
String input2 = input1.toLowerCase();
char[] word1 = new char[input2.length()];
char[] word2 = new char[26];
for (int i = 0; i < word2.length; i++) {
word2[i] = (char) (97 + i);
}
int[] x = new int[26];
for (int i = 0; i < word1.length; i++) {
input1[i] = input2.charAt(i);
}
for (int i = 0; i < word2.length; i++) {
for (int j = 0; j < word1.length; j++) {
if (word2[i])==word1[j]) {
x[i]++;
}
}
}
txtOutput1.setText(Arrays.toString(word2));
txtOutput2.setText(Arrays.toString(x));
}
答案 0 :(得分:1)
第一个问题:
input1
是一个字符串,但是使用input1[i] = input2.charAt(i);
会将其视为一个数组-Java不允许这样做。
根据您的逻辑,我认为对应的行应该是
word1[i] = input2.charAt(i);
第二个问题:在线
if (word2[i])==word1[j]) {
括号内有一个大括号(word2[i]
之后),该行应显示为
if (word2[i]==word1[j]) {
答案 1 :(得分:0)
input1
是一个String变量,因此是不可变的,这意味着它只能被分配一个新值,否则将无法更改。
以下行会导致问题:
input1[i] = input2.charAt(i);