我需要这个基本程序的帮助。我的朋友给了我大部分代码而不是import语句。它接近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
}
答案 0 :(得分:2)
list.add(finalCombined.get(counter3));
您尚未声明任何名为list
的变量,因此此行无法通过编译。
也许你的意思是
arrayList.add(finalCombined.get(counter3));
因为您的randomStrings
方法有一个名为arrayList
的参数,您根本就没有使用它。
答案 1 :(得分:0)
我认为您需要在行中将list
更改为arrayList
list.add(finalCombined.get(counter3));
因为list
未在代码中的任何位置声明,并且arrayList
尚未使用。
答案 2 :(得分:0)
您尚未定义名为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]
答案 3 :(得分:0)
始终正确且明智地声明变量,这有助于您的代码更易读和易懂。这意味着你实际上减轻了编译器的压力;)
一个小建议:在编码时使用IDE可以帮助您编译这样的编译时错误。此外,他们非常友好地建议解决方案和优化代码..!