此程序提示用户输入列表中的数字,然后提示用户输入列表中的实际数字。然后它决定列表中的数字是否已经排序。它完全正常,但我希望程序提示用户输入列表中的数字和列表,而不是提示用户输入数字,然后提示用户的次数与用户的次数相同以前输入。对不起,这是一个很长的时间,这是输出与我正在寻找的一个例子:
当前输出:
Enter a number for the length of the list: 5
Enter list:
1
Enter list:
3
Enter list:
2
Enter list:
4
Enter list:
5
The list is not sorted.
我想要的是:
Enter a number for the length of the list: 5 1 3 2 4 5
The list is not sorted.
代码:
import java.util.Scanner;
public class Question7_19 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a number for the length of the list: ");
int listLength = input.nextInt();
int[] number = new int[listLength];
for (int i = 0; i < number.length; i++) {
System.out.println("Enter list: ");
number[i] = input.nextInt();
}
if (isSorted(number)) {
System.out.println("The list is sorted.");
} else {
System.out.println("The list is not sorted.");
}
}
public static boolean isSorted(int[] list) {
for (int i = 0; i < list.length - 1; i++) {
if (list[i] > list[i + 1]) {
return false;
}
}
return true;
}
}
答案 0 :(得分:0)
您可以使用StringTokenizer来标记输入。这将允许在一行上输入数组编号。这也可以根据用户提供的令牌数量确定阵列的大小。
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a numbers: ");
String input = scanner.nextLine();
StringTokenizer s = new StringTokenizer(input);
int[] number = new int[s.countTokens()];
int index = 0;
while(s.hasMoreTokens()){
String item = s.nextToken();
try{
number[index] = Integer.parseInt(item);
index++;
}catch(Exception e){
e.printStackTrace();
}
}
if (isSorted(number)) {
System.out.println("The list is sorted.");
} else {
System.out.println("The list is not sorted.");
}
scanner.close();
}
public static boolean isSorted(int[] list) {
for (int i = 0; i < list.length - 1; i++) {
if (list[i] > list[i + 1]) {
return false;
}
}
return true;
}
编辑:您还可以拆分字符串并循环返回返回的数组元素。
String[] splitInput = input.split(" ");
int[] number = new int[splitInput.length];
for(int i = 0 ; i < splitInput.length ; i++){
String item = splitInput[i];
try{
number[i] = Integer.parseInt(item);
}catch(Exception e){
e.printStackTrace();
i--;
}
}