0

我正在解析 CSV 文件,有时可能会遇到非法文件,例如jpegpdf等...

因此,当我解析文件内容时,我想确定字符是否合法(来自键盘),例如5 & % !等等...

但不是这样的字符:� ַ和其他奇怪的字符,可以在图像 pdf和其他文件中找到

我不想检查文件的 mime 类型,我不想添加几个第三方 jar 来解决这个问题,我想通过查看其字符来确定正在解析的文件是否有效

类似的东西Character.isLetterOrDigit可以判断这个字符是从键盘输入的字符还是一些奇怪的字符,比如◌ַ

*还有一件事我需要能够接受各种语言的字符(不仅是英语),所以我想避免做简单的字符比较c <= 32 && c >= 126等等......


顺便说一句,我正在寻找这个问题CSV file validation with Java中描述的问题的答案

4

1 回答 1

3

如果您正在寻找内置功能,我不知道有一个。但是,您可以查看char的 ascii 值并根据自己的喜好进行过滤。查看此 ASCII 表中的值。

你可以说,比如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;
}
于 2012-07-18T19:11:33.110 回答