我正在解析CSV文件,有时可能碰到非法文件,例如 jpeg 或 pdf 等...
因此,当我解析文件内容时,我想确定char是否合法(来自键盘),如 a 5& %!等...
但不是这样的字符: ַ以及其他奇怪的字符,可以在 images pdfs 和其他文件中找到
我不想检查文件的mime类型,我不想添加几个第三方jar来解决这个问题,我想通过查看其字符来弄清楚正在解析的文件是否有效< / p>
类似于Character.isLetterOrDigit
的东西可以判断char是从键盘输入的char还是像 ַ
*还有一件事我需要能够接受各种语言的字符(不仅仅是英语)
所以我想避免做像c <= 32 && c >= 126
之类的简单字符比较...
B.t.w一般来说,我正在寻找这个问题所描述问题的答案CSV file validation with Java
答案 0 :(得分:3)
如果您正在寻找内置功能,我不知道。但是,您可以查看char
的ascii值并根据自己的喜好进行过滤。查看this ASCII table的值。
你可以说,例如,如果ascii值是<= 32 && >= 126
,你就不会接受它;否则,你会:
public boolean isValid(char c) {
if (c <= 32 && c >= 126) {
return false;
} else {
return true;
}
}
如果您使用整行/ String
,则可以使用它来删除有效字符并确定是否还有无效字符:
public boolean isValid(String s) {
return s.replaceAll("\\w|\\p{Punct}", "").length() == 0;
}