java二进制搜索通过名称列表打印两个名称之间的所有名称

java二进制搜索通过名称列表打印两个名称之间的所有名称,java,Java,我有一个包含姓名列表的文件。我必须在列表中搜索并打印出我搜索的两个名字之间的所有名字。这是我的密码: case '5'://broken System.out.println("Enter the first "last name" of the search."); String fLast= console.next(); System.out.println("Enter the sec

我有一个包含姓名列表的文件。我必须在列表中搜索并打印出我搜索的两个名字之间的所有名字。这是我的密码:

                           case '5'://broken

        System.out.println("Enter the first "last name" of the search.");
        String fLast= console.next();
        System.out.println("Enter the second "last name" of the search.");
        String lLast = console.next();
        String temp ="";
        if( fLast.compareTo(lLast)<0)
        {
            temp=lLast;
            lLast=fLast;
            fLast=temp;
        }
        nameToNameSearch(fLast,lLast);
        break;



 public void nameToNameSearch(String name1, String name2)
 {
ExtPerson[] nameToName = new ExtPerson[nMembes];
for(int x=1;x<nMembers-1; x++)
{
    if( bookMembers[x].lastName.compareTo(name1)==0|| bookMembers     
                        [x].lastName.compareTo    (name1)>0)
    {
        if(bookMembers[x].lastName.compareTo(name2)==0|| bookMembers
                            [x].lastName.compareTo(name1)<0)
        {
            int add=0;
            nameToName[add]=bookMembers[x];
            add++;
        }
    }
案例“5”://已断开
System.out.println(“输入搜索的第一个“姓氏”);
字符串fLast=console.next();
System.out.println(“输入搜索的第二个“姓氏”);
字符串lLast=console.next();
字符串temp=“”;

如果(fLast.compareTo)(lLast)如果这些是赋值的术语,则必须进行一次二进制搜索以找到两个名称中较低的一个,然后从连续递增的索引中打印名称,直到遇到较高的名称。较高的名称实际上根本不需要参与二进制搜索。

我会对名称进行排序,然后使用正则表达式提取lis从名称的toString()中删除t…两行代码。