사용자가 입력 한 7 자의 영숫자 코드를 읽는 스캐너가 있습니다. String 변수는 "코드"라고합니다.문자열 정수 비교 문제
코드의 마지막 문자 (7 번째 문자, 6 번째 색인)는 숫자 여야하며 나머지는 숫자 또는 알파벳 일 수 있습니다.
그래서 코드의 마지막 문자가 숫자 (0-9) 인 경우 나머지 메서드가 실행되지 않도록하는 캐치를 수행해야했습니다.
그러나 내 코드는 내 코드가 0에서 9 사이의 정수로 끝나는 경우에도 if 문이 충족되고 "마지막 문자가 숫자가 아닙니다"라는 메시지를 보면서 예상대로 작동하지 않습니다.
예제 코드 : 예상대로 45m4av7
CharacterAtEnd는 문자열 문자 (7)로 출력한다 그러나 내 프로그램은 여전히 내 코드가 아닌 숫자로 끝나는 알려줍니다 내 숫자 값이 문자열 것을 알고 있어요.. 문자,하지만 그것은 중요해야합니까? 또한 분명히 실제 정수 값을 "|", 왜 Strin 사용하여 메신저를 비교할 수 없습니다. g.valueOf를 사용하고 0-9의 문자열 문자를 사용합니다. 내 프로그램은 나에게 내 코드 (즉 끝에 7가) 말하고 왜 내 인생에 대한 알아낼 수 없습니다
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);
이 아닌 숫자로 끝납니다. if 문을 건너 뛰고 계속 진행해야합니다. 권리?
정규식을 사용해보십시오. [Link] (http://www.addedbytes.com/cheat-sheets/regular-expressions-cheat-sheet/) – SaintLike
질문에 프로그래밍 언어를 사용하십시오. – Barmar
http://stackoverflow.com/questions/1223052/how-do-i-find-out-if-first-character-of-a-string-is-a-number –