本文介绍了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返回错误的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 14:06