-1

Trying to learn Java. I am working on arrays. Here is a simple program that the output is not being displayed as I want it to be.

package arrays2;

public class Arrays2 {

    public static void main(String[] args) {
        int[] userAge;
        userAge = new int[] {22,24,26,27,28};
        System.out.println("The ages of my friends are " + userAge + ".");
        
    }
    
}

The output shows:

run: The ages of my friends are [I@15db9742. BUILD SUCCESSFUL (total time: 0 seconds)

Shouldn't the output be displayed as:

The ages of my friends are 22,24,26,27,28.

Get Off My Lawn
  • 30,739
  • 34
  • 150
  • 294

1 Answers1

1

You can use Arrays.toString to print an array:

private static String arrayToString(int[] arr) {
    return Arrays.toString(arr).replaceAll("\\[|\\]", "");
}

Or concatenate the elements using a StringBuilder and a for-loop:

private static String arrayToString(int[] arr) {
    StringBuilder sb = new StringBuilder();
    for(int i = 0; i < arr.length; i++) {
        String current = String.valueOf(arr[i]);
        if(i < arr.length-1) current += ", ";
        sb.append(current);
    }
    return sb.toString();
}

Demo:

int[] userAge;
userAge = new int[] {22,24,26,27,28};
System.out.println("The ages of my friends are " + arrayToString(userAge) + ".");

Output:

The ages of my friends are 22, 24, 26, 27, 28.
Majed Badawi
  • 25,448
  • 4
  • 17
  • 37