如何确定char来源是否来自键盘(在读取文件内容时)

时间:2012-07-18 19:02:41

标签: java opencsv

我正在解析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

1 个答案:

答案 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;
}