我用字符输入流读取文件内容
判断内容是否为非注释行
如果是非注释行则添加到StringBuilder里面再转成字符串计算长度
但长度和正确答案的少。然后我展示了每一个非注释行的文字长度,发现在头歌平台运行的长度与idea里面运行也不一样
第一行它这个21 是有个换行符吧
```java
//打开一个文件读取内容
BufferedReader in = new BufferedReader(new FileReader(new File("ClassWork\\a.txt")));
String line = null;
/**
* readLine():读取一行文字,返回String字符串
* while循环:表示读取到每一行
*/
// List<String> list = new ArrayList<>();//存储没有注释的文字行
StringBuilder sb=new StringBuilder();
while ((line = in.readLine()) != null) {
//按字符检查是否为注释
char[] ch = line.toCharArray();//把读取到的这一行转换为char数组
int i = 0;
boolean flag=false;//定义一个标志变量,假设它是false,表示当前行不是注释行
//for循环,对当前行拆分后的字符逐个判断是否有注释符号
for (i = 0; i < ch.length; i++) {
//找注释,若这行有注释则不做操作,不添加
if (ch[i] == '/' && ch[i + 1] == '/') {
//修改标志变量,表示当前行是注释行
flag=true;
break;
}
}
/**
* 每一个for循环结束后进行判断,如果不是注释行就添加到list当中
*/
if(flag==false){
sb.append(line);
System.out.println(line);
System.out.println("这是当前行的长度:"+line.length());
}
}
String s = sb.toString();
int length = s.length();
System.out.println("文件长度:"+length);
in.close();
```