【发布时间】:2013-05-30 06:20:41
【问题描述】:
我有一台可以读取 7 个字符的字母数字代码(由用户输入)的扫描仪。字符串变量称为“代码”。
代码的最后一个字符(第 7 个字符,第 6 个索引)必须是数字,其余的可以是数字或字母。
所以,我试图做一个 catch,如果代码中的最后一个字符不是数字(从 0 到 9),这将阻止方法的其余部分执行。
但是,我的代码没有按预期工作,即使我的代码以 0 到 9 之间的整数结尾,也会满足 if 语句,并打印出“代码中的最后一个字符是非数字的”。
示例代码:45m4av7
CharacterAtEnd 打印为字符串字符 7,这是应该的。 但是我的程序仍然告诉我我的代码以非数字方式结束。 我知道我的数值是字符串字符,但这不重要,不是吗? 我也显然无法将实际整数值与“|”进行比较,这主要是为什么我使用 String.valueOf,并采用 0-9 的字符串字符。
String characterAtEnd = String.valueOf(code.charAt(code.length()-1));
System.out.println(characterAtEnd);
if(!characterAtEnd.equals(String.valueOf(0|1|2|3|4|5|6|7|8|9))){
System.out.println("INVALID CRC CODE: last character in code in non-numerical.");
System.exit(0);
我一辈子都做不到,弄清楚为什么我的程序告诉我我的代码(末尾有 7)以非数字方式结束。它应该跳过 if 语句并继续。对吧?
【问题讨论】:
-
尝试使用正则表达式。 Link
-
请用编程语言标记您的问题。
标签: java numbers integer comparison