【发布时间】:2013-06-04 11:01:16
【问题描述】:
所以我正在阅读 Java 中的纯文本文件,我想确定哪些行以“abc”开头。我做了以下事情:
字符集 charset = StandardCharsets.UTF_8; BufferedReader br = Files.newBufferedReader(file.toAbsolutePath(), charset); 字符串线; while ((line = br.readLine()) != null) { 如果(line.startsWith(“abc”)){ // 做一点事 } }但如果文件的第一行是“abcd”,则不匹配。通过调试,我发现第一个字符是 0(不可打印字符),因此它不会匹配。为什么呢?如何可靠地识别哪些行以“abc”开头?
编辑:也许我应该指出我正在使用记事本创建文件
【问题讨论】:
-
读完行后可以修剪不可打印的字符。
-
@SazzadurRahaman trim() 只删除空白字符,它对不可打印的字符没有任何作用
-
我不是在谈论 String.trim(),我是在谈论编写您的自定义修剪! :P
-
您使用的字符集 (StandardCharsets.UTF_8) 是否正确?确保使用 UTF-8 编码保存文件。
-
@SazzadurRahaman 对,但我想知道为什么这个角色会出现。