gpt4 book ai didi

java - str.replaceAll() 不匹配 "\r\n"

转载 作者:行者123 更新时间:2023-12-01 08:54:54 29 4
gpt4 key购买 nike

我正在尝试将多行字符串中的 Unix 样式行结束符 (LF) 转换为 Windows 样式 (CR LF)。

我的攻击计划是:

  • 将所有 CR LF 实例替换为 LF
  • 然后将所有 LF 实例替换为 CR LF

但是,这段代码与“\r\n”不匹配:

String test = "test\r\ncase";
test.replaceAll("\r\n","\n");

PrintWriter testFile = new PrintWriter("test.txt");
testFile.print(test);
testFile.close();

我已经尝试过使用双/三/四反斜杠。没有骰子。

我还知道 test 字符串不包含文字 \r\n 因为它在打印时将它们检测为 CR LF归档。

我在这里缺少什么?

最佳答案

您没有从代码中获取修改后的字符串。

字符串是不可变的,因此您需要保存 replaceAll 返回的值。没有方法可以更改 String

的实例
String test = "test\r\ncase";

//Print the character before
for(char c : test.toCharArray()){ System.out.print((int)c + " ");};
System.out.println();

//Save the replace result
test = test.replaceAll("\r\n","\n");

//Print the character after
for(char c : test.toCharArray()){ System.out.print((int)c + " ");};

表明测试先不改变再改变

116 101 115 116 13 10 99 97 115 101 //BEFORE
116 101 115 116 10 99 97 115 101 //AFTER

关于java - str.replaceAll() 不匹配 "\r\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42088154/

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