String.indexOf()疑问
先上代码:
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这两个特殊字符??表示不理解。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个程序只check了(char) 1和(char) 2的特殊字符而已,对应的就是check ASCII码的01和02这两个字符,写的比较奇怪而已。
你要对应ASCII表去看,你就明白含义了,这代码表示存在char 为1或者2的特殊字符时,抛异常
(char)1
和(char)2
对应的字符如下图所示:☺
☻
你可以粘贴这两个字符输入到控制台调用check方法后就会引发异常。
-- 图片加载不出来好像,贴个图库链接吧。
https://www.wenjiangs.com/wp-content/uploads/stackoverflow/202209/20160428DE215D849D9563AB6BED55BC929D1B7D.png