java charAt() 数组问题
java charAt() array issue
我什至遇到了一些问题,我知道这实际上是我的代码
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.");
}
}
我的问题在第 21 行:if(nameSearch.charAt(j)==PBEnteries[i].charAt(j)){
它应该搜索名称,因此类型名称和 phone 数字,ex."Sam 0000","Danial 1111" 并且在搜索中他写了名称 ex."Sam" 并且应该 post num 甚至整个数组为 "Sam 0000",但我在均衡每个字符时遇到问题
注意:这不是个人程序,他们希望将所有内容都放在一个具有特定 java 知识的数组中,因此它应该将他输入的名称中的每个字符与数组
进行比较
输出:
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)
如果您的条目数组的索引 0 有一个空字符串或 null -- 从您的 运行 输出看来您可能会这样 -- 要求 charAt[0] 是有意义的该条目将失败。您可能希望包括一个不存储空条目的守卫,或者,当您查找条目时,您可能希望检查它是否不为 null 或空。
我什至遇到了一些问题,我知道这实际上是我的代码
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.");
}
}
我的问题在第 21 行:if(nameSearch.charAt(j)==PBEnteries[i].charAt(j)){
它应该搜索名称,因此类型名称和 phone 数字,ex."Sam 0000","Danial 1111" 并且在搜索中他写了名称 ex."Sam" 并且应该 post num 甚至整个数组为 "Sam 0000",但我在均衡每个字符时遇到问题
注意:这不是个人程序,他们希望将所有内容都放在一个具有特定 java 知识的数组中,因此它应该将他输入的名称中的每个字符与数组
输出:
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)
如果您的条目数组的索引 0 有一个空字符串或 null -- 从您的 运行 输出看来您可能会这样 -- 要求 charAt[0] 是有意义的该条目将失败。您可能希望包括一个不存储空条目的守卫,或者,当您查找条目时,您可能希望检查它是否不为 null 或空。