Java для цикла в списке массивов

#java #for-loop #arraylist

#java #for-цикл #arraylist

Вопрос:

Я новичок в Java и начинаю заниматься разработкой, основанной на тестировании. У меня есть довольно простой сценарий, с которым я застрял. Я хочу передать строку чисел от 1 до x. то есть, если x равно 3, он вернет «1, 2, 3» или, если x равно 5, он вернет «1, 2, 3, 4, 5».

Я знаю, что мне нужно использовать список массивов и цикл for, но я застрял с синтаксисом. Кто-нибудь, пожалуйста, помогите!

Спасибо

Комментарии:

1. «Строка чисел» или «список чисел»?

2. Я не понимаю, какое это имеет отношение к TDD. Кроме того, если у вас возникли трудности с синтаксисом базового языка, то, возможно, попытка применить TDD ставит телегу впереди лошади.

3. Почему бы не опубликовать то, что у вас есть прямо сейчас. Это сделает его более познавательным для вас.

4. Массивы не нужны. Вы просто выполняете цикл от 1 до x.

Ответ №1:

Попробуйте следующий код:

 int x = 5;

StringBuilder sb = new StringBuilder(); //You need import java.util.StringBuilder

for (int i = 1; i <= 5; i  ) {
    sb.append(i);
    if (i!=x) {
        sb.append(',');
    }
}

String result = sb.toString(); //Here will be "1,2,3,4,5"
  

Комментарии:

1. у вас опечатка в операторе for, измените 1 -> i

Ответ №2:

Вот начало:

 String output = "";
int x = 5;

for (int i=1; i<=5; i  )
{
    output  = i   ", ";
}

System.out.println(output);
// prints the string "1, 2, 3, 4, 5, "
  

Комментарии:

1. я хочу вернуть его, а не распечатать. Я хочу, чтобы этот тест прошел

2. @MohammedAli Я не говорил, что это идеально, я сказал «это начало». Часть учебного упражнения должна включать в себя написание некоторого кода, нет? ☕

3. public void getNumbers1ThroughX; Числа числа = новые числа; Assert.assertEquals(«1,2,3,4,5», numbers.getNumbers1ThroughX(5));

4. @ Мэтт Болл, спасибо за вашу помощь. Я зашел так далеко, но это синтаксис, с которым я борюсь. Если вы можете дать мне весь код, который мне нужен, я, возможно, смогу научиться, поняв его. Спасибо 🙂

Ответ №3:

 String s = "";
int x = 5;

for(int i = 1; i <= x; i  ) s  = i   (i!=x?", ":"");

System.out.println(s); // It prints "1, 2, 3, 4, 5"
  

Ответ №4:

Если требуется использовать списки массивов, вы можете использовать методы «add» и «get» в ArrayList:

 List<Integer> listOfIntegers = new ArrayList<Integer>();

int = 5;
String stringOfIntegers = "";

for (int i = 1; i <= 5; i  ) {
    listOfIntegers.add(i);
}

for (int i = 0; i < 5; i  ) {
   stringOfIntegers  = listOfIntegers.get(i);
   stringOfIntegers  = ",";
}

System.out.println(stringOfIntegers);
  

ДОБАВЛЕНО:
[Возвращается из метода]

 public String numberString(){
    List<Integer> listOfIntegers = new ArrayList<Integer>();

    int = 5;
    String stringOfIntegers = "";

    for (int i = 1; i <= 5; i  ) {
        listOfIntegers.add(i);
    }

    for (int i = 0; i < 5; i  ) {
        stringOfIntegers  = listOfIntegers.get(i);
        stringOfIntegers  = ",";
    }

    return stringOfIntegers;
}
  

[Возвращается из метода, в котором вы указываете, до какого числа считать]

 public String numberString(int maxNumber){
    List<Integer> listOfIntegers = new ArrayList<Integer>();

    String stringOfIntegers = "";

    for (int i = 1; i <= maxNumber; i  ) {
        listOfIntegers.add(i);
    }

    for (int i = 0; i < 5; i  ) {
        stringOfIntegers  = listOfIntegers.get(i);
        stringOfIntegers  = ",";
    }

    return stringOfIntegers;
}
  

Так, например, если вы передадите значение «7», возвращаемая строка будет: «1,2,3,4,5,6,7». Чтобы «вызвать» этот метод, вы можете использовать что-то вроде:

 public static void main(String[] args){
    MyClass myClass = new MyClass(); //This will be the name of the class you created

    String myNumberString = myClass.numberString(6);

    System.out.println("My number string is: "   myNumberString); //This will print: "1,2,3,4,5,6"
}
  

Комментарии:

1. Спасибо за это. Ценю это! Если я хочу вернуть строку, например, «1,2,3,4,5», а не строку печати, как мне это сделать? Также есть какие-либо способы, которыми я могу использовать ArrayList здесь?

2. Извините, я только что понял, что вы использовали здесь arraylist

3. Переменная «stringOfIntegers» будет содержать искомую строку, то есть «1,2,3,4,5». Если вам нужно, чтобы его возвращали из метода, попробуйте код в правке, которую я добавил.