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

Java 如何使用其他方法的输入?,java,Java,我有一个任务,要求我写一个程序,将用户输入的正整数的顺序反转,即1234变为4321 程序还必须验证输入是否为正整数。这两项工作都必须用不同的方法来完成 我已经完成了下面包含的验证部分。我想把用户输入放在一个数组中,但我不知道如何在一个单独的方法中使用已验证的数字。任何帮助都将不胜感激 import java.util.Scanner; public class order { public static void main(String[] args) {

我有一个任务,要求我写一个程序,将用户输入的正整数的顺序反转,即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;   
    }
import java.util.Scanner;
公共阶级秩序{
公共静态void main(字符串[]args){
字符串用户项;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“请输入一个正整数”);
userEntry=keyboard.nextLine();
userEntry=validate(userEntry);
int original=Integer.parseInt(userEntry);
System.out.println(“原始编号为:“+原始编号”);
}
公共静态字符串验证(字符串用户输入){
int userInputLength=userInput.length();
int计数器=0;
扫描仪键盘=新扫描仪(System.in);
而(userInputLength==0){
System.out.println(“这不是一个有效的整数,请重试”);
userInput=keyboard.nextLine();
userInputLength=userInput.length();
}
while(计数器<用户输入长度){
if(Character.isleter(userInput.charAt(计数器))){
System.out.println(“这不是一个有效的整数,请重试”);
userInput=keyboard.nextLine();
userInputLength=userInput.length();
计数器=0;
}
其他的
{
计数器++;
}
while(userInputLength==0){
System.out.println(“这不是一个有效的整数,请重试”);
userInput=keyboard.nextLine();
userInputLength=userInput.length();
}
}
返回用户输入;
}
您可以使用方法反转数字:

public int reverseInt(int input)
{
    long reversedNum = 0;

    long input_long = input;

    while (input_long != 0)
    {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long = input_long / 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE)
    {
        throw new IllegalArgumentException();
    }
    return (int)reversedNum;
}
并从主方法调用它:

public static void main(String[] args) {

    String userEntry;

    Scanner keyboard = new Scanner(System.in);

    System.out.println("Please enter a positive integer.");
    int original = getInteger();

    System.out.println("The original number is: "+ original);
    System.out.println("The reversed number is: "+ reverse(original));

}
您可以使用方法反转数字:

public int reverseInt(int input)
{
    long reversedNum = 0;

    long input_long = input;

    while (input_long != 0)
    {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long = input_long / 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE)
    {
        throw new IllegalArgumentException();
    }
    return (int)reversedNum;
}
并从主方法调用它:

public static void main(String[] args) {

    String userEntry;

    Scanner keyboard = new Scanner(System.in);

    System.out.println("Please enter a positive integer.");
    int original = getInteger();

    System.out.println("The original number is: "+ original);
    System.out.println("The reversed number is: "+ reverse(original));

}

这是必需的功能:

public static int reverse (int userInpu) { 
 int lastDigit,res=0;

 while (userInpu != 0)
 {    
     lastDigit = userInpu % 10;
     if(lastDigit % 2 != 0)
     {     
            res = res * 10 + lastDigit;

     }
      userInpu = userInpu / 10; 
 }

  return res;
}

这是必需的功能:

public static int reverse (int userInpu) { 
 int lastDigit,res=0;

 while (userInpu != 0)
 {    
     lastDigit = userInpu % 10;
     if(lastDigit % 2 != 0)
     {     
            res = res * 10 + lastDigit;

     }
      userInpu = userInpu / 10; 
 }

  return res;
}

只需循环遍历字符并按索引将它们放入数组(
for
loop)。输入字符串中的索引0在数组中的索引为
userInputLength-1-0
。第二个索引为
userInputLength-1-1
。第三个索引为
userInputLength-1-2
。等等。

只需循环字符,并按索引将它们放入数组(
for
循环)输入字符串中的索引0在数组中的索引为
userInputLength-1-0
。第二个索引为
userInputLength-1-1
。第三个索引为
userInputLength-1-2
。等等。

存储
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;
   }
public int[]getElementsAsArray(字符串搜索){
int[]位=新的int[aString.length()];

对于(int i=0;i存储
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;
   }
public int[]getElementsAsArray(字符串搜索){
int[]位=新的int[aString.length()];

对于(int i=0;i)您所说的逆序是什么意思?您的意思是,如果输入为xy,您需要输出yx???@Arvindsinc2,这是正确的。为什么不使用正则表达式进行验证?您的意思是想知道如何传递validate()返回的值方法转换为其他方法?@Arun是的,这正是我想知道的。你说的逆序是什么意思?你的意思是如果输入是xy,你需要输出yx吗???@Arvindsinc2这是正确的。为什么不用正则表达式进行验证?你的意思是想知道如何传递validate()返回的值方法到其他方法吗?@Arun是的,这正是我想知道的。谢谢。它完成了我所寻找的,也回答了我的问题。唯一的问题是我还需要分别显示偶数和奇数,这就是为什么我最初问如何在数组中获取输入。谢谢。它做了什么我一直在寻找并回答我的问题。唯一的问题是我还需要分别显示偶数和奇数,这就是为什么我最初问如何在数组中获取输入。