先上代码:
package test;
import java.util.Scanner;
public class Char_01 {
public static final String ENTRY_SPLIT = "" + (char) 1;
public static final String KEY_VALUE_SPLIT = "" + (char) 2;
public static void main(String args[]) {
System.out.println("ENTRY_SPLIT:" + ENTRY_SPLIT + "\nKEY_VALUE_SPLIT:" + KEY_VALUE_SPLIT);
Scanner scanner = new Scanner(System.in);
Char_01 _char = new Char_01();
_char.check(scanner.next());
}
public void check(String value) {
if (-1 != value.indexOf(ENTRY_SPLIT) || -1 != value.indexOf(KEY_VALUE_SPLIT)) {
throw new IllegalArgumentException("Message的properties不能包含'(char)1' 或 '(char)2'特殊字符");
}
}
}
这段代码中的check怎么做到校验特殊字符的?
为什么System.out.println(String.valueOf((char) 1));可以表示特殊字符??还是只是用来校验(char)1和(char)2这两个特殊字符??表示不理解。
이 프로그램은 ASCII 코드 01과 02의 두 문자를 검사하는 것에 해당하는 (char) 1과 (char) 2의 특수 문자만 검사합니다. 쓰기가 좀 이상합니다.
ASCII 표를 보시면 그 의미를 이해하실 수 있을 것입니다. 이 코드는 문자가 1 또는 2인 특수 문자가 있을 때 예외가 발생함을 나타냅니다.
(char)1
과(char)2
에 해당하는 문자는 아래와 같습니다.☺
☻
이 두 문자를 콘솔에 붙여넣고 check 메소드를 호출하면 예외가 발생합니다.
-- 사진을 불러올 수 없는 것 같습니다. 갤러리 링크를 올려주세요.
http://img.junbaor.com/20160428DE215D849D9563AB6BED55BC929D1B7D.png