gpt4 book ai didi

java - 制表符不会从字符串中删除

转载 作者:行者123 更新时间:2023-12-02 13:11:20 26 4
gpt4 key购买 nike

环境:Windows、Java 1.8我正在读取文件的内容,并尝试格式化行并删除选项卡,但是 replaceAll 它不起作用。

我尝试过:

    BufferedReader bf = FileUtils.getBufferedReader(filePath);
String line;

try {
while ((line = bf.readLine()) != null )
{
if(line.matches(".*=.*"))
{
// this is a simple test scenario
String test = "\tVERSION=version";
test.trim();
test.replaceAll("\t", "");

line.trim();
line.replaceAll("\\t", "");

}
}
} catch (IOException e) {
System.err.println("[ERROR] : Could not read from file <" + filePath + ">!\n");
System.exit(0);
}

我查看了调试器,选项卡没有被替换。在测试场景中,我尝试使用 \t\\t 变体,但没有成功。我做错了什么吗?

最佳答案

在 Java 中,字符串是不可变的 - 这意味着您无法更改字符串,因此 String.replaceAll 等方法永远无法更改您调用该方法的 String 对象。

documentation 中所述, String.trim() 和 String.replaceAll() 都返回一个新的、更改过的字符串。这就是您需要使用的字符串,并忘记旧字符串。您的代码应如下所示:

test =  test.trim();
test = test.replaceAll("\t", "");

line = line.trim();
line = line.replaceAll("\\t", "");

关于java - 制表符不会从字符串中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43935640/

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