【发布时间】:2018-05-30 14:47:31
【问题描述】:
我正在尝试创建一个程序,该程序 (1) 提示输入用户的全名,然后生成用户名; (2) 提示输入一个数字,然后判断该数字是奇数还是偶数。我写了用户名和奇/偶类的代码,并想从主类中调用它们。但是,当从主类调用时,username 方法在生成用户名之前会提示用户两次,而奇/偶方法实际上并不能确定用户输入的数字是奇数还是偶数。当我从用户名类中删除扫描仪对象时,我得到一个超出范围的编译错误,所以我不得不把它放回去,这样程序才能运行。我应该使用 return 语句吗?
用户名
/**
* Class to generate the username based on user's first name and randomly generated numbers
*/
public void username()
{
Scanner inputReader = new Scanner(System.in);
String fullName = inputReader.nextLine();
// create random object and variable to store it in
Random randomizer = new Random();
int randomNumber = randomizer.nextInt(1000);
// create variable to store lowercase username
String lowercase = (fullName.toLowerCase());
// create string variable to format username to first three characters in lowercase
String firstThreeLetters = (lowercase.substring(0, 3));
// concatenate lowercase characters and random number
String usernameFinal = (firstThreeLetters + randomNumber);
// print out final username
System.out.println("Your username is " + usernameFinal);
}
奇/偶
/**
* Class to determine if a user inputted value is odd or even
*/
public void OddEven1()
{
Scanner inputReader = new Scanner(System.in);
int userInteger = 0;
// if/else to determine if number is odd or even
if (userInteger % 2 == 0)
{
System.out.println(userInteger + " is an even number.");
}
else
{
System.out.println(userInteger + " is an odd number.");
}
}
主要方法
{
/**
* This class holds the main method through which all other classes are run.
*/
public static void main(String[] args)
{
// create objects
Username usernameGenerator = new Username();
OddEven oddeven = new OddEven();
Scanner inputReader = new Scanner(System.in);
// prompt for real name and print username
System.out.print("Name: ");
String fullName = inputReader.nextLine();
usernameGenerator.username();
// prompt for number
System.out.print("Give me a number: ");
// variable to store value
int userInteger = inputReader.nextInt();
oddeven.OddEven1();
}
【问题讨论】:
-
您基本上必须在 main 或自定义类中读取输入,您不需要两次..
标签: java class java.util.scanner user-input main