Нет необходимости использовать два массива, и когда вы делаете эталонную копию, вы все равно работаете с одним и тем же массивом.
Не забудьте протестировать свой алгоритм, используя пустой массив, ноль, массив с четной длиной и один с нечетной длиной.
Вот решение с одним массивом, включающее простые тестовые отпечатки.
public class ReverseTest {
public static String reverse(String s) {
if (s == null)
return null;
char[] ca = s.toCharArray();
for (int i = 0; i < ca.length/2; i++) {
int j = ca.length-i-1;
char c = ca[i];
ca[i] = ca[j];
ca[j] = c;
}
return String.valueOf(ca);
}
public static void main(String[] args) {
System.out.println(reverse(null));
System.out.println(reverse(""));
System.out.println(reverse("54321"));
System.out.println(reverse("4321"));
}
}
Печать:
1010 * нуль *
empty line
12345
1234