Hello! I just stumbled on this piece code and I just wonder how it works exactly... Can I get an explanation on how it works? Thanks.
import java.util.*;
public class Main {
public static void main(String[] args)
{
String str = "abcdef";
char[] A = str.toCharArray();
int offset=3;
int len = A.length;
offset %= len;
reverse(A, 0, len - offset - 1);
reverse(A, len - offset, len - 1);
reverse(A, 0, len - 1);
System.out.println("\n"+Arrays.toString(A));
}
private static void reverse(char[] str, int start, int end) {
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
}
Output is: [d, e, f, a, b, c]