将int Array转换为字符串并将其显示在textarea中

时间:2014-04-03 05:58:48

标签: java arrays

嘿,我刚刚开始编程,我需要帮助转换/显示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]);
    }
}

2 个答案:

答案 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 - 换行符 - 但你可以使用你想要的任何东西。