reversing an array AND assigning it to new array in java -
this question has answer here:
i reverse order of existing array , assign reversed order new array while keeping original array intact (not reverse).
i tried make reverse happen new array (b). however, when print original array after reverse algorithm, prints in new reversed order. array stay intact in original.
here code have 2 arrays: n , b, n original array , b reversed array.
public void setuparray(){ user = input.next(); char [] n = user.tochararray(); char [] b = n; boolean ok; system.out.println(arrays.tostring(n)); for(int = 0; < n.length / 2; i++) // reverses array { b[i] = n[i]; char temp = b[i]; b[i] = b[b.length - - 1]; b[b.length - - 1] = temp; } system.out.println(arrays.tostring(b)); system.out.println(arrays.tostring(n)); //this prints in reverse reason currently if input "hi" scanner, output
[h, i] <-- original array (n) [i, h] <-- reversed array (b) [i, h] <-- orignal array (n) prints in reverse, why???
when make assignment
char [] b = n; it means there 1 array object referred both n , b variables. create new array in order original array remain unchanged:
char [] b = new char[n.length]; if that, code reversing array should change. should take input values n instead of b. don't need temp variable @ all.
for(int = 0; <= n.length / 2; i++) // reverses array { b[i] = n[b.length - - 1]; b[b.length - - 1] = n[i]; }
Comments
Post a Comment