如何从方法中将数组打印为字符串?

时间:2019-09-27 02:44:41

标签: arrays printing return

我正在尝试打印由管道(“ |”)分隔的数组,但是在我的main方法中,它一直在println语句之前打印。它应该看起来像这样:

90 | 0 | -12 | 25 | 10412 | 445 | -32 | 1

我一直在用return语句弄乱,但我想不出其他办法。

    static String arrayToString(int[] input){
    String toString = "";
     for (int i = 0; i < input.length; i++){
        if (i > 0){
            System.out.print("|");
        } else if (i == input.length - 1){
            System.out.print("");
        }
        System.out.print(input[i]);
     }
     return toString;
}

public static void main(String[] args) {

    int[] testArray1 = {90, 0, -12, 25, 10412, 445, -32, 1};

    CommonArrayAlgorithms testingObject = new CommonArrayAlgorithms();

    System.out.println("Testing arrayToString");
    String arrayString;
    arrayString = testingObject.arrayToString(testArray1);         //<--- prints here
    System.out.println(" arrayToString returned: " + arrayString); //<--- should print here

我的输出是:

Testing arrayToString
90|0|-12|25|10412|445|-32|1 arrayToString returned:

应该在什么时候出现:

Testing arrayToString
arrayToString returned: 90|0|-12|25|10412|445|-32|1

2 个答案:

答案 0 :(得分:0)

这是因为您正在调用在标题字符串之前打印数组的方法,并且您的方法还返回了一个空字符串,您试图将其存储在另一个字符串上并在标题之后打印它。 因此,解决方案:

System.out.print("your title: "+testingObject.arrayToString(array1));

答案 1 :(得分:0)

在您的方法中,您将使用System.out.print输出到控制台,您应在其中添加到toString变量中。

如下更改您的方法(保持当前逻辑):

static String arrayToString(int[] input){
    String toString = "";
    for (int i = 0; i < input.length; i++){
        if (i > 0){
            toString += "|";
        } else if (i == input.length - 1){
            toString += "";
        }
        toString += input[i];
     }
     return toString;
}