gpt4 book ai didi

java - 在Java中将文件读取到字符串会导致不可见字符

转载 作者:行者123 更新时间:2023-12-01 23:17:46 25 4
gpt4 key购买 nike

我在 Java 中从文本文件读入字符串时遇到问题。我有一个文本文件(在 Eclipse 中创建,如果这很重要的话),其中包含少量文本——大约 98 个字符。通过多种方法将该文件读取到字符串会导致字符串相当长—— 1621 个字符。除了相关的 98 之外的所有内容在调试器/控制台中都是不可见的。

我尝试了以下方法来加载字符串:

apache commons-io:

FileUtils.readFileToString(new File(path));

FileUtils.readFileToString(new File(path), "UTF-8");

byte[] b = FileUtils.readFileToByteArray(new File(path);
new String(b, "UTF-8");

byte[] b = FileUtils.readFileToByteArray(new File(path);
Charset.defaultCharset().decode(ByteBuffer.wrap(bytes)).toString();

蔚来:

new String(Files.readAllBytes(path);

等等。

有没有办法去掉这些控制字符?有没有办法将文件读取为字符串而不会出现此问题?

<小时/>

正如下面的评论中所指出的,此行为是由于 Eclipse 生成的损坏的(?)文件造成的。不过,我仍然有兴趣听到任何从字符串中删除控制字符的策略!

最佳答案

如果您想删除所有不可打印的字符,请尝试此操作

str = str.replaceAll("[^\\p{Graph}\n\r\t ]", "");

正则表达式匹配所有“不可见”字符,除了我们想要保留的字符;在本例中为换行符、制表符和空格。

\p{Graph}POSIX character class对于所有可打印/可见字符。要否定 POSIX 字符类,我们可以使用大写 P,即 P{Graph} (所有不可打印/不可见字符),但是我们不需要排除换行符等,所以我们需要 [^\\p{Graph}\n\r\t]

关于java - 在Java中将文件读取到字符串会导致不可见字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com