问题描述
我用此方法不能查询数组里面的负数代码如下: import java.util.*; public class SearchDemo {public static void main(String[] args) {Scanner input = new Scanner(System.in);//第一一个变量用来接收数组的索引int index = 0;//定义一个变量用来查询是否存在数组中int searchNum = 0;//定义一个数组int length = 5;int[] ary = new int[length];//循环为数组赋值for(int i=0; i<length; i++) {System.out.print("请输入第"+(i+1)+"个数:");ary[i] = input.nextInt();System.out.println();}System.out.println("**************************************");//用来输出输出Arrays.sort(ary);String ary1 = Arrays.toString(ary);Arrays.toString(ary);System.out.println("所有接收的数据为:"+ary1);System.out.print("请输入要查询的数:");searchNum = input.nextInt();index = Arrays.binarySearch(ary,searchNum);System.out.println(index); } } 问题补充:啊,你这是我的源代码啊,我怎么用windows的dos命令行敲出来就不行啊,我再研究研究,我是一只菜鸟,多谢了chenhailong 写道
解决方案
可以的import java.util.Arrays;import java.util.Scanner;/** * * @author chenhailong * 下午9:32:18 * */public class SearchDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 第一一个变量用来接收数组的索引 int index = 0; // 定义一个变量用来查询是否存在数组中 int searchNum = 0; // 定义一个数组 int length = 5; int[] ary = new int[length]; // 循环为数组赋值 for (int i = 0; i < length; i++) { System.out.print("请输入第" + (i + 1) + "个数:"); ary[i] = input.nextInt(); System.out.println(); } System.out.println("**************************************"); // 用来输出输出 Arrays.sort(ary); String ary1 = Arrays.toString(ary); Arrays.toString(ary); System.out.println("所有接收的数据为:" + ary1); System.out.print("请输入要查询的数:"); searchNum = input.nextInt(); index = Arrays.binarySearch(ary, searchNum); System.out.println(index); }}result:请输入第1个数:1请输入第2个数:2请输入第3个数:12请输入第4个数:-12请输入第5个数:-1**************************************所有接收的数据为:[-12, -1, 1, 2, 12]请输入要查询的数:-11