java读取一个文件,如何找到其中只有数字(在此行只有数字)的那几行,并将其删除
代码是怎样写的??,求赐教!!
原理与此类似。https://zhidao.baidu.com/question/1539787112834797507.html
正则表达式匹配下就可以了。\\d+
试过了,可以达到题目要求
public class DeleteNumLine {
public static void main(String[] args) {
File file = new File("F:\\test.txt");
deleteNumberLine(file);
}
public static void deleteNumberLine(File file){
ArrayList<String> list = new ArrayList<>();
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line = null;
while ((line = bufferedReader.readLine())!= null){
//如果该行不是纯数字,就将该行写入到list中
if(!isNumeric(line)){
list.add(line);
}
}
System.out.println("读取成功");
bufferedReader.close();
//将放在list里的数据写入到文件中
FileWriter fileWriter = new FileWriter(file,false);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for(int i = 0; i < list.size(); i++){
bufferedWriter.write(list.get(i) + "\r\n");
bufferedWriter.flush();
}
System.out.println("删除成功");
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//判断一个字符串是否全是数字
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
}
先将字符串按行切割存储到数组中,然后利用正则表达式,进行逐一匹配,如果是纯数字字符串就不进行拼接,如果不是就进行拼接