java charAt()数组问题

java charAt()数组问题,java,arrays,charat,Java,Arrays,Charat,我有一些问题,即使我知道它实际上是什么,那是我的代码 package $Random_Projects; import java.util.Scanner; public class PhoneBook { public static void main (String[] args){ Scanner myScan = new Scanner(System.in); System.out.println("Enter number of entries

我有一些问题,即使我知道它实际上是什么,那是我的代码

package $Random_Projects;
import java.util.Scanner;
public class PhoneBook {
    public static void main (String[] args){
        Scanner myScan = new Scanner(System.in);
        System.out.println("Enter number of entries in the phone book ");
        int num= myScan.nextInt();
        String PBEnteries[]=new String[num];
        for(int i=0; i<PBEnteries.length;i++){
            System.out.println("Enter name and telephone number: ");
            PBEnteries[i]=myScan.nextLine();
        }
        System.out.println("Enter name: ");
        String nameSearch=myScan.next();
        boolean search=false;
        for(int i=0;i<PBEnteries.length;i++)
            for(int j=0;j<nameSearch.length();j++){
                if(nameSearch.charAt(j)==PBEnteries[i].charAt(j)){
                    if(j == nameSearch.length()){
                        search=true;
                        System.out.println(PBEnteries[i]);}
                }
            }
        if(search == false)
            System.out.println("Invalid name.");
    }
}

如果entries数组的索引0为空字符串或null,并且从运行输出来看可能是空的,那么请求该项的字符[0]将失败是有道理的。您可能希望包含一个不存储空条目的保护,或者在查找条目时,您可能希望检查它是否为null或空。

谢谢,但实际上我不知道跳过第一个循环并转到第二个循环的问题是什么:,如果你知道为什么我会感激它,这似乎是一个重复的-问题描述有原因,你的第一个条目是empty@IRomio您的代码中有1个以上的问题。在使用上述方法时,我认为您不会获得所需的输出
Enter number of entries in the phone book 
3
Enter name and telephone number: 
Enter name and telephone number: 
Mohammed 1212
Enter name and telephone number: 
Ali 0000
Enter name: 
Ali
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:658)
    at $Random_Projects.PhoneBook.main(PhoneBook.java:21)