程序提取数字,我希望它继续循环直到用户键入键“ Q” /“ q”。例如,当用户按下“ O”键时,程序应打印他们输入的数字的一位,以此类推,以显示用户输入的任何3位数字。我已经创建了提取数字,十位数和几百位数的方法,并将它们存储在单独的类中的变量中,但是当我尝试打印这些数字时,控制台中什么也没打印。
import java.util.Scanner;
class Methods {
public Methods (int value) {}
public int hundreds (int num) {
int hund = (num /100)%10;
return hund;
}
public int tens (int num) {
int ten = (num / 10)%10;
return ten;
}
public int ones (int num) {
int one = num % 10;
return one;
}
}
public class DigitExtractor {
public static void main(String[] args)
throws java.io.IOException {
char input = ' '; //initialize outside loop
Scanner s = new Scanner(System.in);
System.out.print("Input an integer");
int wholeNumber = s.nextInt();
Methods num = new Methods(wholeNumber);
do {
System.out.println("show (W)hole number.");
System.out.println("show (O)nes place number.");
System.out.println("show (T)ens place number.");
System.out.println("show (H)undreds place number.");
System.out.println("(Q)uit");
System.out.println("Enter your choice: ");
input = s.next().trim().charAt(0); //using scanner only
if (wholeNumber == 'W' || wholeNumber == 'w') {
System.out.println("The whole number is: " + wholeNumber);
} else if (wholeNumber == 'O' || wholeNumber == 'o') {
System.out.println("The ones place digit is: " + num.ones(wholeNumber));
} else if (wholeNumber == 'T' || wholeNumber == 't') {
System.out.println("The tens place digit is: " + num.tens(wholeNumber));
} else if (wholeNumber == 'H' || wholeNumber == 'H') {
System.out.println("The hundreds place digit is: " + num.hundreds(wholeNumber));
}
} while ((wholeNumber != 'q') && (wholeNumber != 'Q'));
}
}
答案 0 :(得分:0)
您的代码中有一些问题需要解决才能使其正常工作:
Method
类必须在DigitExtractor
类之外。 Methods
类,因此
您必须实例化的构造函数是Methods
。 input
捕获键盘输入。我对您的代码进行了最少的更正,并且此版本适用于此版本:
import java.util.Scanner;
public class DigitExtractor {
public static void main(String[] args) throws java.io.IOException {
try (Scanner input = new Scanner(System.in)){
System.out.print("Input an integer");
int integer = input.nextInt();
Methods num = new Methods(integer);
char keyboard;
do {
System.out.println("show (W)hole number.");
System.out.println("show (O)nes place number.");
System.out.println("show (T)ens place number.");
System.out.println("show (H)undreds place number.");
System.out.println("(Q)uit");
System.out.println("Enter your choice: ");
keyboard = input.next().charAt(0);
if (keyboard == 'W' || keyboard == 'w') {
System.out.println("The whole number is: " + integer);
} else if (keyboard == 'O' || keyboard == 'o') {
System.out.println("The ones place digit is: " + num.ones(integer));
} else if (keyboard == 'T' || keyboard == 't') {
System.out.println("The tens place digit is: " + num.tens(integer));
} else if (keyboard == 'H' || keyboard == 'H') {
System.out.println("The hundreds place digit is: " + num.hundreds(integer));
}
} while ((keyboard != 'q') && (keyboard != 'Q'));
}
}
}
class Methods {
public Methods (int value) {}
public int hundreds (int num) {
return (num /100)%10;
}
public int tens (int num) {
return (num / 10)%10;
}
public int ones (int num) {
return num % 10;
}
}