#java #arrays #string #loops #if-statement
#java #массивы #строка #циклы #if-оператор
Вопрос:
Я пытаюсь создать метод, который вернет строку, построив предложение из eleloosp
массива до j
элементов. Так что, если j = 3
тогда результат будет " How about a nice "
.
Я не хочу жестко кодировать операторы if, делая что-то вроде if(j == 3)
then выводить эту конкретную вещь.
Как бы мне это сделать, чтобы я мог принимать входное целое число, а не жестко кодировать операторы 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();
}
}
}
}
Комментарии:
1. Почему значение 3 должно давать возвращаемую строку с четырьмя элементами? Вы пробовали использовать
StringJoiner
? И какое это имеет отношение к длине массива? Боюсь, на данный момент ваш вопрос совершенно неясен.2. Что я пытаюсь сделать, так это создать метод, который возвращает строку, в которой будет предложение, составленное из массива eleloosp с точностью до j элементов. Я знаю, что должен использовать операторы if, но как мне взять введенное число из j и сделать его равным массиву eleloosp без жесткого кодирования чисел в операторе if.
Ответ №1:
Вы можете просто сделать это с помощью следующего кода:
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
Дайте мне знать, если вам помогут с этим!
Ответ №2:
Может быть много способов сделать это. Краткий способ сделать это с помощью следующих функций:
ДЕМОНСТРАЦИЯ:
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