如何从Java

时间:2017-05-30 11:31:57

标签: java

我正在寻找一些方法来轻松获取单词和数字,而不需要任何类型的奇怪符号,例如("'/&%$·...,所以我从代码中获取:

int i=0;

这:int,i,0。

Java的任何好功能?

2 个答案:

答案 0 :(得分:0)

你不能直接这样做,你必须逐行获取并将非字母数字字符替换为空,然后再次重写你的行,以替换你可以使用的所有非字母数字字符:

line.replaceAll("[^a-zA-Z\\d\\s]", "")

正则表达式是指替换所有非(^)字母(a-zA-Z)或数字(\d)或空格(\s)。

您可以使用以下内容:

while ((line = br.readLine()) != null) {//read the line
    putData = line.replaceAll("[^a-zA-Z\\d]", "");//replace all non alphanumerical 
    ....
    bw.write(putData);//write it again
}

答案 1 :(得分:0)

您可以逐行读取文件并在每行上应用正则表达式。要排除某些字符(<,>,%,$,/,\等),您可以制作如下的正则表达式:

[<>%\$=&@]

您可以在此列表中添加更多内容。现在,

Pattern p = Pattern.compile("[<>%\$%@]");
Matcher m = p.matcher(unsafeInputString);
if (m.matches())
{
    // Invalid input: reject it, or remove/change the offending characters.
}
else
{
    // Valid input.
}