Java 为什么此代码在匹配记录存在时找不到匹配记录
当检测到detele关键字时,程序设计为在arraylist中搜索匹配的名称,并返回索引值以指示arraylist中的索引,然后记录将被删除。现在在arraylist中,一条记录有一个名称,但程序找不到该名称。我对它进行了测试,程序返回-1,表示没有这样的记录。但是当我使用printlnpersonList.get0.getName时,输出显示有一个类似于测试的空间 这些产出是: -一, 测试一 名称不存在,删除失败Java 为什么此代码在匹配记录存在时找不到匹配记录,java,if-statement,Java,If Statement,当检测到detele关键字时,程序设计为在arraylist中搜索匹配的名称,并返回索引值以指示arraylist中的索引,然后记录将被删除。现在在arraylist中,一条记录有一个名称,但程序找不到该名称。我对它进行了测试,程序返回-1,表示没有这样的记录。但是当我使用printlnpersonList.get0.getName时,输出显示有一个类似于测试的空间 这些产出是: -一, 测试一 名称不存在,删除失败 else if(words[0].equalsIgnoreCase("dele
else if(words[0].equalsIgnoreCase("delete"))
{
if(words.length<2)
{
System.out.println("Please enter the name of record you want to delete");
}
else
{
String name = "";
if(Functions.nameValidation(words[1]))
{
for(int i = 2; i < words.length; i++)
{
name = words[1] + " " + words[i];
}
if(Functions.nameValidation(name))
{
int index = Functions.searchPeopleByName(personList, name);
System.out.println(index);
System.out.println(personList.get(0).getName())
if(index>=0)
{
personList.remove(index);
FileIO.outData(personList, outputFileName);
}
else
{
System.out.println("The name does not exist, please check again");
}
}
else
{
System.out.println("The name is invalid, please check again!!!");
}
}
else
{
System.out.println("The name is invalid, please check again");
}
}
}
public static boolean nameValidation(String name)
{
for (int i = 0; i < name.length(); i++) {
if ((!Character.isLetter(name.charAt(i))) && (name.codePointAt(i) != 32))/*space*/ {
return false;
}
}
return true;
}
public static int searchPeopleByName(ArrayList<Person> personList, String name)
{
for(int i=0; i<personList.size();i++)
{
if(personList.get(i).getName().equalsIgnoreCase(name))
return i;
}
return -1;
}
如果任何字符都有效,则返回true。如果任何字符无效,我怀疑希望返回false。但仅有效的字符属于A-Z或A-Z或空格。任何其他字符(如*&^%$$)都应返回false。正确?正确,但您希望将逻辑更改为所有字符必须有效,而不是任何字符必须有效。1要更快获得更好的帮助,请发布一个。请使用正确的拼写来拼写“you”、“your”和“Please”。这使人们更容易理解和帮助。您的名称验证检查字符串中是否至少存在一次A-Z、A-Z或空格。拿一支铅笔和一张纸,试着检查名称验证是如何工作的。