如何防止将字符写入字符串?

时间:2017-01-13 01:32:31

标签: java xml string character-encoding

我从科学文章中提取文本时遇到问题。 我使用PDFBox从pdf中提取文本。该 问题不是来自提取过程,而是一些特殊的数学符号导致问题,当我想将提取的文本写入XML文件时,未正确提取的特殊字符将导致麻烦。而不是,或其他类似的HTML代码将插入XML文件并废弃整个文件。如何解决这个问题?

我所说的HTML代码看起来像these,目前,数字218就是麻烦。但我想对于不同的数学符号,不同的HTML代码将被替换并导致问题。

我已经尝试过以下字符串清理,但没有帮助:

nextWord=nextWord.replaceAll("[-+.^:,]", "");
nextWord=nextWord.replaceAll("\\s+", "");
nextWord=nextWord.replaceAll("[^\\x00-\\x7F]", "");

2 个答案:

答案 0 :(得分:1)

您可以在将每行写入文件之前编写预检查,以检查文本是否包含不明确的字符。下面的模式包含任何给定教科书中的所有基本字符。您可以根据自己的内容添加或删除。

public boolean isValidCharacters(String word){
    String pattern= "^[a-zA-Z0-9~@#$^*()_+={}|\\,.?: -]*$";
    return word.matches(pattern);
}

答案 1 :(得分:0)

你可以用正则表达式自己编写一些东西,或者如果你有其他字符串操作来做Apache StringUtils真的很棒。它有一个易于实现的isAlpha()isNumeric()方法。

https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html