0

Want to print {act , dgo , act , dgo ,act} but it printing address, please provide reason.

import java.util.Arrays;

public class PrintingAnagram {

    /**
     * @param args
     */
    public static void main(String[] args) {

        String str[] = {"cat", "dog", "tac", "god","act" };

        int index[]={0,1,2,3,4};

        String words[]=str.clone();

        SortByWords(words);

        for(String s:words)
            System.out.println(s);

    }

    public static void SortByWords(String a[])
    {

        for(int i=0;i<a.length;i++)
        {
        char arr[]=a[i].toCharArray();
        Arrays.sort(arr);
        a[i]=arr.toString();
        }
    }

},
halfer
  • 19,824
  • 17
  • 99
  • 186
  • Change `a[i]=arr.toString();` to `a[i] = String.valueOf(arr);` or `a[i] = new String(arr);` –  Apr 30 '16 at 11:29

1 Answers1

0

ToString() on the array will always return the array memory address. As suggested by Saka, you need to convert char array back into String.

Minh Kieu
  • 475
  • 3
  • 9