从JAVA中的方法将字符返回到数组

时间:2018-05-05 12:50:46

标签: java arrays random methods

我试图从一个方法返回一个数组的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];
    }
}

1 个答案:

答案 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方法对您不利。