如何向用户询问Java中的五位数输入?

时间:2014-05-22 15:29:45

标签: java eclipse

对于我需要编写的程序,我必须确保用户给我一个五位数的数字,这是一个回文的形式。该程序必须检查以确保该数字是回文,如果不是,则它会给出错误。

有没有人知道怎么做那样的事情?我正在使用Eclipse,如果它有帮助。
大多数情况下,我只需要帮助确保给予该程序的数字只有五位数,不多也不少。

2 个答案:

答案 0 :(得分:4)

  • 将您的数据作为字符串
  • 读取
  • 检查它是否只包含数字(如果使用正则表达式,还可以检查长度,如matches("\\d{5}")
  • 通过将第一个字符与第五个和第二个字符进行比较来检查它是否是回文(您可以使用charAt(index))。

答案 1 :(得分:3)

如果你把它作为一个整数:

int n = getUserInput();

// Number is not 5 digits.
if (n/10000>=10 || n/10000<=0)
    throw new Exception();

// First and last digits don't match.
if (n%10 != n/10000)
    throw new Exception();

// Second and fourth digits don't match.
if ((n%100)/10 != (n/1000)%10)
    throw new Exception();

如果你把它作为一个字符串:

String s = getUserInput();

// Test that pin is number.
for (int i=0;i<s.length();i++) {
    if (c < '0' || c > '9') // or `if (!Character.isDigit(c))`
        throw new Exception();
}

// String is not 5 characters.
if (s.length() != 5)
    throw new Exception();

// First and last don't match.
if (s.charAt(0) != s.charAt(4))
    throw new Exception();

// Second and fourth don't match
if (s.charAt(1) != s.charAt(3))
    throw new Exception();