我有一个作业,要求我编写一个程序来反转用户输入的正整数的顺序,即 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/