问题描述
我正在执行一个项目,我需要从 java 文件中删除所有 java 关键字。首先,我创建一个 keyword.java 文件并将所有 java 关键字存储到这个文件中。像 abstract continue for new switch assert default goto package 等我存储了 keyword.java 文件。我有另一个名为 newFile.java 的文件,我将 newFile.java 中的所有数据作为字符串读取。我必须从 newFile.java 文件中删除所有 java 关键字。据我尝试:
public void processFile() throws IOException {
String data = "";
data = new String(Files.readAllBytes(Paths.get("H:\\java\\Clone\\newFile.java"))).trim();
String rmvPunctuation = removePunctuation(data);
String newLineRemove = rmvPunctuation.replace("\n","").replace("\r","");
String spaceRemove = newLineRemove.replaceAll("( ){2,}"," ");
removeKeyword(spaceRemove);}
public void removeKeyword(String fileAsstring) throws FileNotFoundException,IOException {
ArrayList<String> keyWordList = new ArrayList<>();
ArrayList<String> methodContentList = new ArrayList<>();
FileInputStream fis = new FileInputStream("H:\\java\\keyword.java");
byte[] b = new byte[fis.available()];
fis.read(b);
String[] keyword = new String(b).trim().split(" ");
String newString = "";
for (int i = 0; i < keyword.length; i++) {
keyWordList.add(keyword[i].trim());
}
String[] p = fileAsstring.split(" ");
for (int i = 0; i < p.length; i++) {
if (!(keyWordList.contains(p[i].trim()))) {
newString = newString + p[i] + " ";
}
}
System.out.println("" + newString);
}
但是我找不到我想要的输出。不会从 newFile.java 文件中删除所有 java 关键字。我认为 StackOverflow 社区帮助我解决了这个问题。我也是初学者。
我也试过:
public void removeKeyword(String fileAsstring) throws IOException {
String keyWord = new String(Files.readAllBytes(Paths.get("H:\\java\\keyword.java"))).trim();
String text = fileAsstring.trim();
ArrayList<String> wordList = new ArrayList<>();
ArrayList<String> keyWordList = new ArrayList<>();
wordList.addAll(Arrays.asList(text.split(" ")));
keyWordList.addAll(Arrays.asList(keyWord.split(" ")));
wordList.removeAll(keyWordList);
System.out.println("" + wordList.toString());
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)