我如何将这个 java 程序分解成多个方法?它首先存储一个字符串作为输入,然后循环遍历它以将所有数字提取到一个数组列表中。然后它打印所有这些数字以及它们的总和和乘积。
public class Assignment1 {
public static void main(String[] args){
// Creates scanner for storing input string
Scanner numScanner = new Scanner(System.in);
String input;
System.out.println("Enter a string of numbers to compute their sum and product:");
System.out.println("(Enter '.' to terminate program)");
input = numScanner.nextLine();
// Terminates the program if there is no input
if (input.length() == 0){
System.out.println("Invalid input: Not enough characters");
System.exit(-1);
}
// Terminates the program if the first character is '.'
if (input.charAt(0) == '.'){
System.out.println("Thank you for using numberScanner!");
System.exit(-1);
}
// Defines all of the variables used in the loops
int index = 0;
int sum = 0;
int product = 1;
Integer start = null;
int end = 0;
ArrayList<Integer> numbers = new ArrayList<>();
// Loop that extracts all numbers from the string and computes their sum and product
while (index < input.length()){
if (input.charAt(index) >= 'A' && input.charAt(index) <= 'Z' && start == null){
index++;
}else if (input.charAt(index) >= '1' && input.charAt(index) <= '9' && start == null){
start = index;
index++;
}else if (Character.isDigit(input.charAt(index))){
index++;
}else{
end = index;
numbers.add(Integer.parseInt(input.substring(start,end)));
sum += Integer.parseInt(input.substring(start,end));
product *= Integer.parseInt(input.substring(start,end));
index++;
start = null;
}
}
// For the last number, the end is greater than the length of the string
// This prints the last number without using the end
if (index == input.length()){
numbers.add(Integer.parseInt(input.substring(start)));
sum += Integer.parseInt(input.substring(start));
product *= Integer.parseInt(input.substring(start));
index++;
}
// Prints the Numbers, Sum and Product beside each other
System.out.print("Numbers: ");
for (Object a : numbers) {
System.out.print(a.toString() + " ");
}
System.out.println("Sum: " + sum + " Product: " + product);
}
}
我只是不知道如何将单个方法拆分为多个方法