Я пытаюсь создать метод, который будет возвращать String, построив предложение из массива eleloosp до элементов j. Итак, если j = 3, то на выходе будет " How about a nice ".
Я не хочу жестко кодировать операторы if, выполняя что-то вроде if(j == 3), а затем выводить эту конкретную вещь.

Как мне это сделать, чтобы я мог взять входное целое число, а не жестко закодировать операторы if.

public class TestForEachLoop
{
    private String[] eleloosp = {"How", "about", "a", "nice","tea"};

    public String getCF(int j){
        for(int i = 0; i < eleloosp.length; i++){
            if( j == eleloosp.length){
                System.out.println();
            }
        }
    }
}
-4
xomvonrun 22 Ноя 2020 в 22:29

2 ответа

Лучший ответ

Вы можете просто сделать это с помощью следующего кода:

public class Main {
    static String[] eleloosp = { "How", "about", "a", "nice", "tea" };

    public static void main(String[] args) {
        System.out.println(getCF(2));
        System.out.println(getCF(3));
    }

    public static String getCF(int j) {
        String sentence = "";
        assert(j < eleloosp.length);

        for(int i = 0; i < j; i++){
           sentence += eleloosp[i] + " ";
        }

        return sentence;
    }
}

Выход:

How about
How about a

Сообщите мне, если вам это поможет!

0
DataPlanningEngineer 22 Ноя 2020 в 19:45

Есть много способов сделать это. Краткий способ сделать это с помощью следующих функций:

  1. String#join
  2. Arrays#copyOfRange
  3. Integer#min

<Сильные> Демо:

import java.util.Arrays;

public class Main {
    static String[] eleloosp = { "How", "about", "a", "nice", "tea" };

    public static void main(String[] args) {
        // Test
        System.out.println(getCF(3));
        System.out.println(getCF(2));
        System.out.println(getCF(8));
    }

    public static String getCF(int j) {
        return String.join(" ", Arrays.copyOfRange(eleloosp, 0, Integer.min(j + 1, eleloosp.length)));
    }
}

Вывод:

How about a nice
How about a
How about a nice tea
1
Arvind Kumar Avinash 22 Ноя 2020 в 21:18
64958578