在我的程序中,我需要检查并查看字符是否确定索引是否为数字。我设置的条件检查并确定它是否为数字
//Check to make sure all other characters are digits
else if (Character.isDigit(militaryTime.charAt(0)))
{
System.out.println(militaryTime +
" is not a valid miliary time." );
}
else if (Character.isDigit(militaryTime.charAt(1)))
{
System.out.println(militaryTime +
" is not a valid miliary time." );
}
else if (Character.isDigit(militaryTime.charAt(3)))
{
System.out.println(militaryTime +
" is not a valid miliary time." );
}
else if (Character.isDigit(militaryTime.charAt(4)))
{
System.out.println(militaryTime +
" is not a valid miliary time." );
}
但是,当我运行它时,我意识到了问题,它表示那些应该是有效的时间,并不是。当我意识到,它正在检查索引是否是一个数字,如果是这样,它返回的时间是无效的。
如何制作它以便检查它是否不是数字并因此显示错误的输出,否则它只是继续?我试过isLetter,但那只是我的程序崩溃了。
答案 0 :(得分:3)
使用
if (!Character.isDigit(whatever))
如果你想要一些非常简单易用的东西 - 使用正则表达式:^\d{4}$
是正好四位数的正则表达式。
更新以捕获无效小时,您需要更复杂的正则表达式。 ^([01]\d\d\d|2[0-3]\d\d)$
,或使用Javas SimpleDateFormat
。
答案 1 :(得分:0)
在!
声明的表达式前面使用if
; !
表示“不”:
// if militaryTime.charAt(0) is not a digit
if (!Character.isDigit(militaryTime.charAt(0))) {
// ...
}