本文介绍了Array.binarySearch返回错误的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想验证用户名和密码使用数组和array.BinarySearch功能。数组中的前两个用户名:布拉德利和约翰正在使用的功能0和1返回正确的位置,但是当我尝试验证数组吉姆和克拉克最后两个字符串的函数的binarySearch返回的用户名位于位置-2两次数组,这是造成验证失败英寸任何想法?
的String [] =名称{布拉德利,约翰,吉姆,克拉克};
的String [] =密码{密码,密码,测试,测试};
INT POS = Arrays.binarySearch(姓名,UNAME);
的System.out.println(发现你的数组:+ +的uname的位置:+ POS)
如果(POS> = 0)
{
的System.out.println(用于验证口令:+的uname);
如果(密码[POS] .equals(PWORD)及和放大器;!loggedOn [POS])
{
}
解决方案
您名称
数组没有排序:
的String [] =名称{布拉德利,约翰,吉姆,克拉克};
这是 的binarySearch()
(和的):
Sort it first and it'll work like a charm:
String[] names = {"bradley","clarke","jim","john"};
这篇关于Array.binarySearch返回错误的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!