Первая ошибка:
String sPlayers[][] =new String[**3**][];
Вы всегда пытаетесь ввести имена игроков для 3 команд. Измените его на:
numTeams=scanner.nextInt();//also make sure to handle InputMismatchException for non integer inputs
String sTeams[]=new String [numTeams];
String sPlayers[][] =new String[numTeams][];//now it works for user entered number of teams
При печати имен игроков каждой команды:
for(int i=0;i<sPlayers.length;i++)
{
System.out.print(sTeams[i]+"\t ");
for (int j=0;j< **sPlayers.length** ;j++)//j<numTeams, it should be j<num of players for each team
{
System.out.print(" "+sPlayers[i][j]+"\t ");
}//end for loop
System.out.println("\n----------------------------------------------------------------------------------------------------\n");
}//end for loop
Изменить состояние внутренней петли на sPlayer [i] .length
for(int i=0;i<sPlayers.length;i++)
{
System.out.print(sTeams[i]+"\t ");
for (int j=0;j<sPlayers[i].length;j++)//now j<num of players of ith team
{
System.out.print(" "+sPlayers[i][j]+"\t ");
}//end for loop
System.out.println("\n----------------------------------------------------------------------------------------------------\n");
}//end for loop