сделать строку в классе, Java - PullRequest
0 голосов
/ 11 октября 2019

Я хочу создать строку из этого, поэтому она позволит мне напечатать formatArray () в предложении печати. Но я не уверен, как сделать из этого строку и не дать ей печатать информацию самостоятельно. это предложение, которое я хочу использовать;system.out.println("your numbers are"+formatArray())


вот мой код.

 public static void formatArray(int[] tallrekke){
     for(int i=0; i<tallrekke.length; i++){
         if(i>0 && i < tallrekke.length -1) {
             System.out.print(", ");
         }
         else if (i> tallrekke.length -2) {
             System.out.print(" og ");
         }
         System.out.print(tallrekke[i]);
    }
}

Ответы [ 6 ]

3 голосов
/ 11 октября 2019

Заставьте ваш метод возвращать строку:

public static String formatArray(int[] tallrekke){
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            sb.append(", ");
        }
        else if (i> tallrekke.length -2) {
            sb.append(" og ");
        }
        sb.append(tallrekke[i]);
   }
    return sb.toString();
   }

public static void main( String[] args) {

    int[] tab = {1,2,3};
    System.out.println( formatArray( tab ) );

}

Вывод:

1, 2 og 3
3 голосов
/ 11 октября 2019
public static String formatArray(int[] tallrekke) {
    String s = "";

    for (int i = 0; i < tallrekke.length; i++) {
        if (i > 0 && i < tallrekke.length - 1) {
            s += ", ";
        } else if (i > tallrekke.length - 2) {
            s += " og ";
        }
            s += tallrekke[i];
        }

    return s;

}

Это принесет все ваши печатные выписки. Однако я бы предпочел использовать StringBuilder вместо String. Это означает, что ваш код будет выглядеть следующим образом:

public static String formatArray(int[] tallrekke) {
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < tallrekke.length; i++) {
        if (i > 0 && i < tallrekke.length - 1) {
            sb.append(", ");
        } else if (i > tallrekke.length - 2) {
            sb.append(" og ");
        }
            sb.append(tallrekke[i]);
        }

    return sb.toString();

}
2 голосов
/ 11 октября 2019

Несмотря на то, что ваш ожидаемый результат не ясен, это то, что вам нужно:

public static String formatArray(int[] tallrekke){
    StringBuilder stringBuilder = new StringBuilder();
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            stringBuilder.append(", ");
        }
        else if (i> tallrekke.length -2) {
            stringBuilder.append(" og ");
        }
        stringBuilder.append(tallrekke[i]);
    }
    return stringBuilder.toString();
}

И вы должны вызывать этот метод, передавая параметр:

int[] tallrekke = {0,1,2};
System.out.println("your numbers are"+formatArray(tallrekke));
2 голосов
/ 11 октября 2019

Прежде всего вам нужно установить тип возвращаемого значения вашего метода String вместо void. Затем вы должны использовать StringBuilder для создания строки.

public static String formatArray(int[] tallrekke) {
    StringBuilder stringBuilder = new StringBuilder();
    for(int tall : tallrekke){
        stringBuilder.append(tall);
    }
    return stringBuilder.toString();
}
1 голос
/ 11 октября 2019

Аналогично вашему решению

public class Main {
    public static void main (String[]args) throws IOException, ParseException {
        int[] nums = {1,2,3,4,5};
        System.out.println("your numbers are "+formatArray(nums));
    }

    public static String formatArray(int[] tallrekke){
        String result = "";
        for(int i=0; i<tallrekke.length; i++){
            if(i>0 && i < tallrekke.length -1) {
                result +=  ", ";
            }
            else if (i> tallrekke.length -2) {
                result += " og ";
            }
            result +=tallrekke[i];
        }
        return result;
    }
}

вывод:

your numbers are 1, 2, 3, 4 og 5

Компактный метод formatArray:

 public static String formatArray(int[] tallrekke){
        String result = "";
        for (int i = 0; ; i++) {
            result +=tallrekke[i];
            if (i == tallrekke.length-1)
                return result;
            result+= i==tallrekke.length-2?" og ":", ";
        }
    }

Ваш метод formatArray должен возвращать строку. Строка объединяется внутри forLoop.

0 голосов
/ 11 октября 2019

возможно вместо System.out.print используйте return, тогда вы можете напечатать любую функцию, возвращаемую

public String formatArray(int[] tallrekke){
    for(int i=0; i<tallrekke.length; i++){
        if(i>0 && i < tallrekke.length -1) {
            return ", ";
        }
        else if (i> tallrekke.length -2) {
            return  " og ";
        }
        return  String.valueOf(tallrekke[i]);
    }
}
...