简体   繁体   中英

I keep getting the error "Index 5 out of bounds for length 5" but don't know what to change

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

I'm pretty new to coding so please bear with me, I am just experimenting with ways to shuffle an array for eventual use in shuffling a deck of cards in a card game I am creating in Java. I know that index 5 is out of bounds for length 5 but what is puzzling to me is that the error doesn't ALWAYS pop up. Sometimes I try to run my code and it works just fine, other times I get the error even if I haven't changed anything between times that I run it.

public class Card{

    public static void shuffle(Object[] array) {

        int noOfCards = array.length;

        for (int i = 0; i < noOfCards; i++) {

            int s = i + (int)(Math.random() * (noOfCards - 1));

            Object temp = array[s]; //this is the first line it says has a problem
            array[s] = array[i];
            array[i] = temp;
        }
    }

    public static void main(String[] args) {

        String[] strOfCards = {"A","B","C","D","E"};

        Card.shuffle(strOfCards); //this is the second line that has a problem
        for(int i = 0; i < strOfCards.length; i++) {
            System.out.println(strOfCards[i] + " ");
        }
    }
}

I have no idea how to change the flawed lines, any suggestions are welcome! *** i have tried changing the number of letters in the string but then the error changes with it ie "Index 6 out of bounds for length 6"

M getting the same issue with this code and still no idea how to solve it

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class Main
{
    public static void main (String[] args)
    {
        while (true)
        {
            String number = JOptionPane.showInputDialog("Please Enter \n"
            + "1 for 'Add new Employee'"
            + "\n 2 for 'Search in employee'"
            + "\n 3 for 'Exit'");
            
            int convertnumber = Integer.parseInt(number);
            
            if (convertnumber == 1)
            {
                addEmployee();
            }
            else if (convertnumber == 2)
            {
                String eId = JOptionPane.showInputDialog("Enter ID to search");
                searchEmplye(eId);
            }
            else if (convertnumber == 3)
            {
                JOptionPane.showMessageDialog(null, "Developed By: BC180401942 SHEHZAD ADEEL");
                System.exit(0);
            }
            else
            {
                JOptionPane.showMessageDialog(null, "Invalid input");
            }
        }
    }
    
    public static void searchEmplye(String eId)
    {
        try
        {
            String tokens[] = null;
            String id, name, dob, qual, expe, pays;
            FileReader fr = new FileReader("empData.txt");
            BufferedReader br = new BufferedReader(fr);
            
            String line = br.readLine();
            
            if (line == null)
            {
                JOptionPane.showMessageDialog(null, "Employee Not found");
            }
            
            while (line != null)
            {
                tokens = line.split (",");
                id = tokens[0];
                name = tokens[1];
                dob = tokens[2];
                qual = tokens[3];
                expe = tokens[4];
                pays = tokens[5];
                
                Employee emp = new Employee (id, name, dob, qual, expe, pays);
                
                ArrayList list = new ArrayList();
                list.add(emp);
                line = br.readLine();
                
                /*
                for (int i = 0; i < list.size(); i++)
                {
                    Employee p = (Employee) list.get(i);
                    if (eId.equals(p.getEmpId()))
                    {
                        JOptionPane.showMessageDialog(null, "Employee: \n"
                        + "Employee ID: " + p.getEmpId()
                        + " \n Employee Name: "  +p.getEmpName()
                        + " \n Employee DOB: " + p.getEmpDoB()
                        + " \n Qualification: " + p.getEmpQualf()
                        + " \n Experience: " + p.getEmpExp()
                        + " \n Pay Scal: " + p.getEmpPSacle()
                        );
                    }
                    */
                for (int i = 0; i < list.size(); i++)
                {
                    Employee p = (Employee) list.get(i);
                    if (eId.equals(p.getEmpId()))
                    {
                        JOptionPane.showMessageDialog( null, "Employee: \n" +
                        "EmpId: " + p.getEmpId() + "\n" +
                        "Name: " + p.getEmpName() + "\n" +
                        "DoB: " + p.getEmpDoB() + "\n" +
                        "Qualification: " + p.getEmpQualf() + "\n" +
                        "Experience: " + p.getEmpExp() + "\n" +
                        "PayScale: " + p.getEmpPScale() );
                    }   
                    else
                    {
                        JOptionPane.showMessageDialog(null, "Employee Not found");
                    }
                }
            }
            br.close();
            fr.close();
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    
    public static void addEmployee()
    {
        try
        {
            ArrayList list = new ArrayList();
            String id = JOptionPane.showInputDialog("Enter Employee ID: ");
            String name = JOptionPane.showInputDialog("Enter name: ");
            String dob = JOptionPane.showInputDialog("Enter DoB (year): ");
            String qual = JOptionPane.showInputDialog("Enter Qualification: ");
            String exp = JOptionPane.showInputDialog("Enter Employee experience (in months): ");
            String pays = JOptionPane.showInputDialog("Enter Employee Pay Scale (in number): ");
            
            Employee emp = new Employee (id, name, dob, qual, exp, pays);
            list.add(emp);
            /*
            ArrayList list = new ArrayList();
            String id = JOptionPane.showInputDialog("Enter ID ");
            String name = JOptionPane.showInputDialog("Enter Name ");
            String dob = JOptionPane.showInputDialog("Enter DOB ");
            String qualification = JOptionPane.showInputDialog("Enter qualification ");
            String experience = JOptionPane.showInputDialog("Enter Employee Experience");
            String paScale = JOptionPane.showInputDialog("Enter Employee pay scale ");
            
            Employee emp = new Employee(id, name, qualification, experience, paScale);
            list.add(emp);
            */
            
            String line;
            FileWriter fw = new FileWriter("empData.txt");
            PrintWriter pw = new PrintWriter(fw);
            
            for (int i = 0; i < list.size(); i++)
            {
                emp = (Employee) list.get(i);
                //line = emp.getEmpId() + "," + emp.getEmpName() + "," + emp.getEmpDoB() + "," + emp.getEmpQualf() + "," + emp.getEmpExp() + "," + emp.getEmpPSacle();
                
                line = emp.getEmpId() + "," +
                emp.getEmpName() + "," +
                emp.getEmpDoB() + "," +
                emp.getEmpQualf() + "," +
                emp.getEmpPScale();
                
                pw.println(line);
            }
            pw.flush();
            pw.close();
            fw.close();
        }
        catch (IOException ioEx)
        {
            System.out.println(ioEx);
        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM