Базовая Java-программа не может найти ошибку символа
Мне нужна помощь с этой основной программой. Мой друг дал мне большую часть этого кода, но не операторы импорта. К концу, где говорится list.add(finalCombined.get(counter3));
, это дает мне ошибку. Я получаю ошибку
Cannot find Symbol
Symbol: variable list
location: class ArrayUtils
Я очень смущен этим. Я добавил, какие утверждения импорта, я думаю, мне нужно. Спасибо
import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;
import java.lang.String;
public class ArrayUtils {
public void randomStrings(ArrayList<String> arrayList,int nbrOfStrings,int vowelCnt, int strSize){
ArrayList <String> finalCombined = new ArrayList();
ArrayList <String> finalCombined = new ArrayList();
for (int cnt = 0; cnt < nbrOfStrings; cnt++)
{
int cnt2 = 0;
int gn, size, vowelUsed;
Random n1 = new Random();
size = 122-96;
//char cs[] = new char[strSize];
//String cs;
//cs = "";
ArrayList <Character> cs = new ArrayList();
int counter = 0;
vowelUsed = 0;
while (counter < 1)
{
vowelUsed = n1.nextInt(vowelCnt + 1);
if (vowelUsed == 0)
{
}
else
{
counter = 2;
}
}
while (cnt2 < (strSize - vowelUsed))
{
gn = n1.nextInt(size) + 97;
if (gn == 97 | gn == 101 | gn == 105 | gn == 111 | gn == 117 | gn == 121)
{
}
else
{
cs.add((char)gn);
//cs += ((char)gn + "");
cnt2 ++;
}
}
while (cnt2 < strSize)
{
gn = n1.nextInt(size) + 97;
if (gn == 97 | gn == 101 | gn == 105 | gn == 111 | gn == 117 | gn == 121)
{
cs.add((char)gn);
//cs += ((char)gn + "");
cnt2 ++;
}
}
//int check;
//check = list.add(cs[cnt]);
Collections.shuffle(cs);
String combined;
combined = "";
//System.out.println(cs);
int counter2 = 0;
while (counter2 < strSize)
{
combined += cs.get(counter2);
counter2 ++;
}
finalCombined.add(combined);
counter2 = 0;
combined = "";
} // end # strings
for (int counter3 = 0; counter3 < nbrOfStrings; counter3++)
{
list.add(finalCombined.get(counter3));
}
} // end method
}
4 ответа
list.add(finalCombined.get(counter3));
Вы не объявили ни одной переменной с именем list
поэтому эта строка не может пройти компиляцию.
Возможно, вы имели в виду
arrayList.add(finalCombined.get(counter3));
так как ваш randomStrings
у метода есть аргумент arrayList
что вы не используете вообще.
Вы не определили переменную с именем list
, Однако вы объявили список массивов finalCombined
с одним и тем же именем дважды. Одно имя переменной должно быть изменено как list
, Также вы должны вызвать метод через main
метод, как показано ниже.
new ArrayUtils().randomStrings(new ArrayList<String>(), 6, 3, 3);
Я просто брожу, какова цель параметра arrayList
в методе randomStrings
, Этот метод не используется в методе randomStrings
,
Ваш вывод выглядит как ниже:
[aeo]
[aeo, yii]
[aeo, yii, isu]
[aeo, yii, isu, aea]
[aeo, yii, isu, aea, aaa]
[aeo, yii, isu, aea, aaa, iek]
Всегда объявляйте переменные правильно и разумно, что помогает вашему коду быть более читабельным и понятным. Это означает, что вы фактически уменьшаете нагрузку на компилятор;)
Небольшое предложение: используйте IDE при кодировании, что может помочь вам в таких ошибках времени компиляции. Более того, они так дружелюбны, предлагая решения и оптимизируя код.
Я думаю, тебе нужно изменить list
в arrayList
в соответствии
list.add(finalCombined.get(counter3));
так как list
не объявлено где-либо в вашем коде и arrayList
не был использован.