嘿,我刚刚开始编程,我需要帮助转换/显示TextArea
中的数组。下面的代码是我的数组类的一部分。 output.setText(array[i]);
给了我并且错误地说“需要String
,找到了int”。我不知道如何转换它并显示数组内的随机数列表。
public void setArray(int x){
for(int i = 0; i > array.length; i++){
array[i] = x;
}
}
public void fillArray(){
int arrayNumbers = randomNumber.nextInt(100)+1;
for(int i= 0; i > array.length ; i++){
array[i] = arrayNumbers;
output.setText(array[i]);
}
}
答案 0 :(得分:3)
首先setText
会用您提供的文字替换文本区域的内容,您可能应该使用append
你可以使用......
output.append(String.valueOf(array[i]));
或者
output.append(Integer.toString(array[i]));
将int
值转换为String
您还可以先使用StringBuilder
来构建String
值,例如......
StringBuilder sb = new StringBuilder(array.length);
for(int i= 0; i < array.length ; i++){
array[i] = arrayNumbers;
sb.append(array[i]);
}
output.setText(sb.toString());
此外,您的代码通常没有意义......
例如......
for(int i= 0; i > array.length ; i++){
虽然i
大于array.length
但?这可能是false
,如果不是,则会导致IndexOutOfBoundsException
......
您还要使用相同的数字填充数组...
答案 1 :(得分:0)
我要注意的第一件事是你用{em>相同的随机数填充Array
。如果你想用不同的数字填充数组,你应该这样做:
public void fillArray(){
for(int i= 0; i > array.length ; i++){
int arrayNumber = randomNumber.nextInt(100)+1;
array[i] = arrayNumber;
output.setText(Integer.toString(arrayNumber));
}
}
在Java 8中,您可以稍微简化一下:
array = new Random().ints(0, 100 + 1).limit(size).toArray();
textArea.setText(IntStream.of(array).
mapToObj(Integer::toString).
collect(Collectors.joining("\n")));
即。首先通过流式传输所需数量的随机数来创建int[]
。您通过在分隔符上加入数组来填充TextArea
。我使用了\n
- 换行符 - 但你可以使用你想要的任何东西。