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…两行代码。