Выполнял я практическое задание с помощью языка Java и у меня возник вопрос: можно ли выполнить моё задание более оптимально или более "правильно"?
Текст задания: напишите функцию, которая принимает две строки и объединяет их, чередуя символы из каждой строки.
Пример: Для строк "abc" и "123" результат будет "a1b2c3".
Дополнительно: Создайте новую строку, в которой будут только символы, находящиеся на четных позициях в объединенной строке. Результат будет "123".
Вот мое решение:
public class StringMerger {
public static String alternateMerge(String str1, String str2) {
StringBuilder merged = new StringBuilder();
int maxLength = Math.max(str1.length(), str2.length());
for (int i = 0; i < maxLength; i++) {
if (i < str1.length()) {
merged.append(str1.charAt(i));
}
if (i < str2.length()) {
merged.append(str2.charAt(i));
}
}
return merged.toString();
}
public static String getEvenPositionChars(String merged) {
StringBuilder evenChars = new StringBuilder();
for (int i = 0; i < merged.length(); i++) {
if (i % 2 != 0) {
evenChars.append(merged.charAt(i));
}
}
return evenChars.toString();
}
public static void main(String[] args) {
String str1 = "abc";
String str2 = "123";
String mergedResult = alternateMerge(str1, str2);
System.out.println("Merged Result: " + mergedResult);
String evenChars = getEvenPositionChars(mergedResult);
System.out.println("Even Position Characters: " + evenChars);
}
}
И есть еще один вопрос: дополнительно необходимо реализовать метод для тестирования программы и в нем указать входные данные. Какие тесты можно написать для программы? Мне на ум приходит только: ввод двух строк, которые содержат только пробелы; ввод двух строк, которые содержат цифры и спец. символы.