当前位置: 首页 > 知识库问答 >
问题:

改变程序提示用户输入的方式

严元白
2023-03-14

该程序提示用户输入列表中的数字,然后提示用户输入该列表中的实际数字。然后它决定列表中的数字是否已经排序。它工作得很好,但我希望程序立即提示用户输入列表和列表中的数字数量,而不是提示用户输入数字,然后提示用户输入用户之前输入的数字。对不起,太长了,下面是一个输出与我正在查找的内容的示例:

电流输出:

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;
    }
}

共有1个答案

苏丰茂
2023-03-14

您可以使用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--;
    }
}
 类似资料:
  • 问题内容: 来自Oracle背景,Oracle的SQLPlus可以让您指示一个变量。如果未设置变量,则会提示您提供一个值。 我正在使用SQLCMD,并使用$([var_name])语法。在SSMS SQLCMD模式下,我得到: 发生致命的脚本错误。 未定义变量tbl_name。 …用于尝试运行: SQLCMD是否提供与SQLPlus相同的功能?如果是这样,我在做什么错? 问题答案: SQLCMD不

  • 问题内容: 我正在编写一个提示输入的函数,然后根据输入返回不同的结果,然后再次要求输入。我已经得到它返回正确的值,但是我不确定如何使它再次提示输入。 这是该函数的实际代码: 在其中包含return的每一行中,它只是在调用先前定义的函数。的和是词典,前面所定义。 我只能使用内置函数。 问题答案: 我会用while循环来做。像这样:

  • 问题内容: 在SQL Server Management Studio中是否可以要求用户提供输入并基于输入继续进行? 我有一个存储过程,它将一些数据插入表中。每当用户执行存储过程时,我都希望出现一条消息,询问他是否确定要执行该存储过程。 如果响应为“是”,则继续,如果“否”,则终止。 问题答案: 我建议编写一个小型应用程序来解决此问题。我不知道在运行sql时提示用户输入任何方法。IMO Sql M

  • 问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 编写一个程序,提示用户输入两个点 (x1,y1) 和 (x2, y2) 并显示它们之间的距离。计算距离的公式为:(x2-x1)^2 (y2-y1)^2 的平方根 这就是我所拥有的: 然而: 我不断得到以下错误: 请帮忙。谢谢