java从键盘输入N个整数,并输出指定的某个整数在这N个整数中的按照由小到大的顺序排列的位次(最小的位次是1,最大的位次是N,指定的整数如果不在这N个数中,则其位次是-1)
时间: 2025-07-05 08:03:03 浏览: 15
### 实现Java程序接收多个整数输入并查找指定整数在排序后的列表中的位置
为了满足需求,可以创建一个 Java 应用程序,该应用程序能够接受用户输入的一系列整数,并按照升序排列这些数值。之后,在已排序的数组中寻找特定的目标值,并返回其索引;如果目标不存在于数组内,则反馈 `-1`。
以下是具体的实现方式:
#### 完整代码示例
```java
import java.util.Arrays;
import java.util.Scanner;
public class FindSortedPosition {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取一系列整数输入
System.out.println("请输入若干个整数(以逗号分隔):");
String inputStr = scanner.nextLine();
String[] strArray = inputStr.split(",");
int[] numArray = new int[strArray.length];
// 将字符串转换成整型数组
for (int i = 0; i < strArray.length; ++i){
numArray[i] = Integer.parseInt(strArray[i].trim());
}
// 对数组进行排序
Arrays.sort(numArray);
// 查找目标值的位置
System.out.println("请输入要查询的整数:");
int targetNum = scanner.nextInt();
// 使用二分法搜索定位目标值所在位置
int position = binarySearch(numArray, targetNum);
if(position >= 0){
System.out.printf("数字 %d 的位置是在排序后列表中的第%d位%n",targetNum ,position + 1);
}else{
System.out.printf("未找到数字 %d ,返回-1%n", targetNum);
}
scanner.close();
}
private static int binarySearch(int[] sortedArr, int key){
return Arrays.binarySearch(sortedArr,key);
}
}
```
此段代码首先提示用户输入一组由逗号分割开来的整数序列[^3],接着利用 `Integer.parseInt()` 方法把每一个子串转化为对应的整数值存入到一个新的整形数组当中去。随后调用了 `Arrays.sort()` 函数对该数组进行了从小到大的顺序整理操作。最后借助 `binarySearch()` 来高效地查找出目标元素的具体下标位置,当找不到匹配项时会给出负数的结果表示失败。
阅读全文
相关推荐


















