我试图从一个方法返回一个数组的4个字符,但得到如下所示的错误。到目前为止,我试图在两个位置调用该方法,并在下面对它们进行了评论。这样做的正确方法是什么?
Private Async Function DoWorkAsync() As Task
'Do work code
_cts.Token.ThrowIfCancellationRequested()
End Sub
我收到此错误:
class App{
public static void main(String[]args){
App theApp = new App();
}
// position 1 - RandomizeCodeBlock();
char[] charactersAllowed;
char[] charArray;
public App(){
// position 2 - RandomizeCodeBlock();
for(int i=0; i<4; i++){
System.out.println(charArray[i]);
}
}
public char RandomizeCodeBlock()
{
char[] charactersAllowed = {'A','B','C','D','E','F','G'};
charArray = new char[4];
int i;
for(i = 0; i < charArray.length; i++) {
charArray[i] = charactersAllowed[(int) (Math.random() * 4)];
}return charArray[i];
}
}
答案 0 :(得分:0)
我不完全确定你的代码应该做什么,但至少,问题在于行{return charArray [i]
你得到一个错误,因为此刻我是4,所以它超出了数组范围。
这样它至少可以工作,但我不确定它是否能给你预期的结果:
public class App{
public static void main(String[]args){
App theApp = new App();
}
public App(){
char[] currentCharacters = randomizeCodeBlock();
for(int i=0; i<4; i++){
System.out.println(currentCharacters[i]);
}
}
public char[] randomizeCodeBlock()
{
char[] charactersAllowed = {'A','B','C','D','E','F','G'};
charArray = new char[4];
int i;
for(i = 0; i < charArray.length; i++) {
charArray[i] = charactersAllowed[(int) (Math.random() * 4)];
}
return charArray;
}
}
我改变了什么:函数randomizeCodeBlock()返回一个随机数组。 然后,按照您的建议将数组的内容打印到标准输出。
为了防止您使用Java集合,请查看本文,以确保Collection.shuffle方法对您不利。