先上代码:
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这两个特殊字符??表示不理解。
This program only checks the special characters of (char) 1 and (char) 2, which correspond to checking the two characters of ASCII code 01 and 02. The writing is rather strange.
You have to look at the ASCII table and you will understand the meaning. This code indicates that when there is a special character with char of 1 or 2, an exception is thrown
The corresponding characters of
(char)1
和(char)2
are as shown below:☺
☻
You can paste these two characters into the console and call the check method to trigger an exception.
-- It seems that the picture cannot be loaded, please post a link to the gallery.
http://img.junbaor.com/20160428DE215D849D9563AB6BED55BC929D1B7D.png