Как избежать нуля в массиве?

inNeedOfHelp спросил: 07 октября 2018 в 12:32 в: java

Я начинающий программист, и в колледже нам дают задание использовать только массивы (я спросил учителя и сказал, что нет списков массивов или что-то в этом роде, хочу сделать это грубым образом)

о создании массива, который вы можете вставить, найти или удалить в нем значение. Я выяснил большинство из них путем поиска и применения решений.

Но они хотели получить вывод, так что если я удалю ТО, то я ищу это значение, будет отображаться, что значение пропало, но проблема заключается в том, что Так как это значение удалено, Java помещает туда ноль, поэтому, когда цикл for перебирает все нули, он создает страшную ошибку NullPointerException. В настоящее время я ищу решения с этими ограничениями, но безрезультатно, плюс мой словарь и терминология на Java, по общему признанию, в настоящее время коротки: P

import static java.lang.System.out;
import java.util.Scanner;public class JavaApplication 
{
    public static void main(String[] args) 
    {  
        Scanner kb = new Scanner(System.in);        //initialize String array x20 
        String[] regName = new String[20];
        int regCount = 0;
        int func = 0;
        while (func == 0) //Main Menu Looper
        {    
            out.println("Select function by entering its number.");
            out.println("[1] Insert");
            out.println("[2] Search");
            out.println("[3] Delete");
            out.println("[4] Exit");
            out.print("Choose Operation: ");
            func = kb.nextInt(); //Choose Option
            out.print("======================================");
            out.print("\n");            switch (func) 
            {    
                case 1: //Insertion
                         //set Array index start
                        char yesNo;
                    do 
                    {   
                        //Inserting into arrays loop
                        out.print("Insert student last name: ");
                        regName[regCount] = kb.next();
                        regCount++;
                        out.print("\n");                        //Viewing loop
                        out.println("Student List: ");
                        for (int ctrl = 0; ctrl < regCount; ctrl++)
                        {
                        out.println(regName[ctrl]);
                        }
                        out.print("\n");                        //Question loop
                        out.print("You want to insert again(Y/N):");
                        yesNo = kb.findWithinHorizon(".", 0).charAt(0);
                        if (yesNo == 'y' || yesNo == 'Y')
                        {
                            yesNo = 'y';
                        }   
                    } while (yesNo == 'y');
                func = 0;    
                break;                   case 2: //Searching
                    out.print("Enter keyword: ");
                    String search = kb.next();
                    boolean found = false;
                    int searchCount = 0;
                    for (int ctrl = 0; ctrl < regCount; ctrl++) 
                    {
                        if (regName[ctrl].equalsIgnoreCase(search)) {
                        found = true;
                        out.println(search + " has " + " a match.");
                        }               
                        else
                        {
                        out.println(search + " has " + " not found.");
                        }    
                    }    
                    out.print("\n");
                    func = 0;
                break;                  case 3: //Deleting
                    out.print("type surname you want to delete: ");
                    String toDelete = kb.next();
                    for (int ctrl = 0; ctrl < regCount; ctrl++) 
                    {
                        if (regName[ctrl].equalsIgnoreCase(toDelete)) {
                        regName[ctrl] = null;
                        out.println("Record deleted.");
                        }                
                    }    
                    out.print("\n");
                    func = 0;
                break;                } //switch
        } //while   
    } //main
} //class

0 ответов