I am trying to calculate the overall time of an album.
The user enters the track length (double) in format mm.ss .
Then convert this in a String so I can calculate min and sec separately.

public void overallRunningTime()
        int min = 0;
        int sec = 0;

        for(int i = 0; i < album.size(); i++)
            double songLength = album.get(i).getTrackLength();

            String trackLength = String.valueOf(songLength);
            String[] songLengthSplit = trackLength.split(".");

            min = Integer.valueOf(songLengthSplit[0]);
            sec = Integer.valueOf(songLengthSplit[1]);

            if(Integer.parseInt(songLengthSplit[1]) > 60)
                sec = Integer.valueOf(songLengthSplit[1]) % 60;
                min = Integer.valueOf(songLengthSplit[1]) / 60;
                sec = Integer.valueOf(songLengthSplit[1]);

            System.out.println("Seconds: " + sec);
            System.out.println("Minutes: " + min);

//          overallTime += songLength;

        System.out.print("The overall time is: " + overallTime);

I get an java.lang.ArrayIndexOutOfBoundsException: 0

at this line min = Integer.valueOf(songLengthSplit[0]);

3 Years
Discussion Span
Last Post by kyriacos1986

it would appear there is a problem with your array, that there is no array.
or, at least, there are no elements. have you tried printing the value of trackLength before creating the array?
have you checked the number of elements your array has?

I agree it's unusual for even the first element (index 0) not to be there, but still..


It seems that the trackLength its printed right.

While the array songLengthSplit it seems to be empty.

Attachments track.png 13.79 KB

Using delimeter to escape special characters like . -> String deimeter = "\."

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.