我正在尝试获取用户输入的字符的长度。如果用户输入的字符串长度小于5或大于5,则应该说“输入有效的5位数字”。如果长度为5,那么我希望它继续下一个问题,但是由于某种原因,它无法正常工作。谢谢!
package Hw;
import java.util.Scanner;
public class Library {
public static void main(String[] args) {
int cardnumber = 0;
int age;
int item = 0;
int overdue = 0;
int fine = item * overdue;
int length = length(Integer.toString(cardnumber));
Scanner Keyboard = new Scanner (System.in);
System.out.println("Enter Card Number: ");
cardnumber = Keyboard.nextInt();
System.out.println("Enter Age: ");
age = Keyboard.nextInt();
System.out.println("Enter Item Type (Book = 1, Magazine = 2, Dvd = 3): ");
item = Keyboard.nextInt();
System.out.println("Enter The Amount Of Days The Item Has Been Overdue");
overdue = Keyboard.nextInt();
if (length == 5)
{
System.out.println(cardnumber);
}
if (length > 5 || length < 5)
{
System.out.println("Enter A Valid 5 Digit Number");
}
if (item == 1)
{
fine = (int) (overdue * 0.50);
}
else if (item == 2)
{
fine = (int) (overdue * 0.25);
}
else if (item == 3)
{
fine = (int) (overdue * 1.50);
}
if (age > 5 || age < 18)
{
fine = (int) 1.00;
}
if (age > 70)
{
fine = 0;
}
else if(age > 18 || age < 70)
{
if(overdue < 5)
System.out.println("Days Overdue "+ overdue);
}
else
{
fine = (int) 5.00;
}
/*else if (age < 6 || age > 17)
{
fine = (int) 1.00;
}
*/
System.out.println("Card Number "+ cardnumber);
System.out.println("Age "+ age);
// System.out.println("Days overdue "+ overdue);
System.out.println("Fine "+ fine);
// System.out.println("Fine adjustment reason "+ )
if(item == 1)
{
System.out.println("item Book");
}
else if(item == 2)
{
System.out.println("item Magazine");
}
else if(item == 3)
{
System.out.println("item Dvd");
}
else if(item <1 || item >3)
{
System.out.println("Invalid Information");
}
}
private static int length(String string) {
// TODO Auto-generated method stub
return 0;
}
}
主要概念应该是使用String而不是Integer,通过这种方法,检查用户的输入长度更加容易和快捷。
我建议更改代码,如下所示:更改该行:
int length = length(Integer.toString(cardnumber));
至:
String length = Integer.toString(cardnumber);
另一个更改是以下几行:
if (length == 5)
{
System.out.println(cardnumber);
}
if (length > 5 || length < 5)
{
System.out.println("Enter A Valid 5 Digit Number");
}
应替换为:
while(length != 5) {
System.out.println("Enter A Valid 5 Digit Number");
cardnumber = Keyboard.nextInt();
length = Integer.toString(cardnumber);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句