необходимо реализовать метод (Класс Unit1, метод revertString()), который переставит символы в строке
Знаю что через for, а как именно не могу сообразить?
Можете подсказать? Код прилагаю. Это по Java.
Необходимо реализовать метод (Класс Unit1, метод revertString()), который переставит символы в строке (переменная INPUT_STRING внутри класса Unit1) в обратном порядке, без использования метода reverse() из класса StringBuilder.
В случае успеха в консоль будет выведено сообщение "Строка изменена корректно"
public class Unit1 {
private static final String INPUT_STRING = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, "
+ "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
public static void main(String[] args) {
String result = revertString();
checkResult(result);
}
/**
* При реализации метода нельзя использовать метод reverse() из класса StringBuilder
*/
private static String revertString() {
return "";
}
private static void checkResult(String result) {
if (INPUT_STRING.equals(new StringBuilder(result).reverse().toString())) {
System.out.println("Строка изменена корректно");
} else {
throw new RuntimeException("Ошибка, строка изменена неверно");
}
}
}
Ответы (2 шт):
Автор решения: dmtr
→ Ссылка
Взять строку, разбить на массив символов, пройтись циклом от последнего индекса массива к нулевому, записывая их в новую строку, вернуть строку в метод. Все.
Автор решения: Chubatiy
→ Ссылка
Через стримы
//генерим индексы
return IntStream.range(0, INPUT_STRING.length())
//выбираем нужный символ из строки
.mapToObj((i) -> String.valueOf(INPUT_STRING.charAt(INPUT_STRING.length() - i - 1)))
//соединяем воедино
.collect(Collectors.joining());
То же самое через for
//будующая строка
String out = "";
//перебираем индексы от последнего до 0
for(int i = INPUT_STRING.length() - 1; i>=0; i--){
//склеиваем
out+=INPUT_STRING.charAt(i);
}
return out;