java - 如何使用其他方法的输入?

标签 java

我有一个作业,要求我编写一个程序来反转用户输入的正整数的顺序,即 1234 变成 4321。

程序还必须验证输入是否为正整数。这两者都必须通过不同的方法来完成。

我已经完成了下面包含的验证部分。我想将用户输入放入数组中,但我不知道如何在单独的方法中使用经过验证的数字。任何帮助将不胜感激。

    import java.util.Scanner;

    public class order {

    public static void main(String[] args) {

        String userEntry;

        Scanner keyboard = new Scanner(System.in);

        System.out.println("Please enter a positive integer.");
        userEntry = keyboard.nextLine();

        userEntry = validate (userEntry);
        int original = Integer.parseInt(userEntry);
        System.out.println("The original number is: "+ original);

    }

    public static String validate (String userInput) { 

        int userInputLength = userInput.length();
        int counter = 0;

        Scanner keyboard = new Scanner(System.in);

        while (userInputLength == 0) {                                                          
            System.out.println("That is not a valid integer. Try again");
            userInput = keyboard.nextLine();
            userInputLength = userInput.length();       
        }

        while (counter < userInputLength) {

            if (Character.isLetter(userInput.charAt(counter))) {

                System.out.println("That is not a valid integer. Try again");
                userInput = keyboard.nextLine();
                userInputLength = userInput.length();
                counter = 0;
            }
            else
            {
            counter++;
            }

            while (userInputLength == 0) {

                System.out.println("That is not a valid integer. Try again");
                userInput = keyboard.nextLine();
                userInputLength = userInput.length();
            }
        }
        return userInput;   
    }

最佳答案

存储 validate() 方法返回的值,然后将其传递给另一个方法(在本例中为 reverseString() 方法)。 stringDigits 是包含字符串数字的数组。

在你的主要方法中

 String validatedString = validate(userInput);
 String reversedString = reverseString(validatedString);
 int[] stringInDigits = new int[userInput.length()];
 stringInDigits = getElementsAsArray(userInput);

reversedString 变量将包含反转的值。

假设您将原始数字作为字符串传递。以相反的顺序循环遍历字符串。

反转字符串方法

   public String reverseString(String aString){
       String reverseString = "" ;
       int index = aString.length()-1;
       while(index >= 0){
           char myCharacter = aString.charAt(index);
           reverseString = reverseString.concat(""+myCharacter) ;
           index--;
       }
       return reverseString;
   }

将数字字符串中的数字存储到数组

声明一个大小等于字符串长度的数组。逐个字符循环遍历字符串并将其放入数组

   public int[] getElementsAsArray(String aString){
       int[] digits = new int[aString.length()];
       for(int i=0;i<aString.length();i++){
           digits[i]=Integer.parseInt(""+aString.charAt(i));
       }
       return digits;
   }

关于java - 如何使用其他方法的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43199671/

相关文章:

java - 无法使用对象集合将哈希集转换为树集

构建 NativeScript 项目时出现 java.util.zip.zipException

java - 如何查找 2 个值与溢出/覆盖值、模数的差异

java - 字符串数组值与edittext不匹配

java - Android:如何更新特定行的文本文件

java - JPA:反向映射字段上的查询子句 - 未设置参数

java - 根据像素正确缩放 x 轴 (Java)

java - nunit 中的reporter.log() testng 等效项

c# - 与 C# 不同的 Java 数字签名

java - Freemarker 在读取 ftl 文件时转换 HTML ISO 标签