Как распечатать массив как строку из метода? - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь распечатать мой массив, разделенный трубками ("|"), но он продолжает печатать до оператора 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 голосов
/ 27 сентября 2019

В вашем методе вы выводите на консоль с 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;
}
0 голосов
/ 27 сентября 2019

Это потому, что вы вызываете метод, который печатает массив перед строкой заголовка, а также ваш метод возвращает пустую строку, которую вы пытались сохранить в другой строке, и печатает ее после заголовка.Итак, решение для этого:

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