那如果还有/* */和<%-- --%>这样的多行注释呢
时间: 2023-08-30 18:12:25 浏览: 88
如果还有`/* */`和`<%-- --%>`这样的多行注释,可以使用一个标志变量来判断当前是否在注释中,如果在注释中,则跳过当前行,否则再进行空格和单行注释的过滤。
以下是示例代码:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadFile {
public static void main(String[] args) {
try {
File file = new File("your_file_path.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
boolean inComment = false; // 是否在注释中
while ((line = br.readLine()) != null) {
// 过滤空格和单行注释
if (!inComment && !line.trim().startsWith("//") && !line.trim().equals("")) {
System.out.println(line);
}
// 处理多行注释
if (line.contains("/*")) {
if (!line.contains("*/")) {
inComment = true;
}
}
if (line.contains("*/")) {
if (!line.contains("/*")) {
inComment = false;
}
}
// 处理JSP注释
if (line.contains("<%--")) {
if (!line.contains("--%>")) {
inComment = true;
}
}
if (line.contains("--%>")) {
if (!line.contains("<%--")) {
inComment = false;
}
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在代码中,如果发现`/*`或`<%--`开头的多行注释,则将标志变量`inComment`设为`true`,并跳过当前行。如果发现`*/`或`--%>`结束的多行注释,则将标志变量`inComment`设为`false`,表示当前已经不在注释中。在处理单行注释时,只有当`inComment`为`false`时才进行过滤。
阅读全文