我正在寻找一些方法来轻松获取单词和数字,而不需要任何类型的奇怪符号,例如("'/&%$·...
,所以我从代码中获取:
int i=0;
这:int,i,0。
Java的任何好功能?
答案 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.
}