gpt4 book ai didi

java - 为什么这不修改以符合合规性?

转载 作者:行者123 更新时间:2023-12-01 18:43:44 25 4
gpt4 key购买 nike

public static String modifyForCompliance(String header) {
String modHeader = header;
for (int i = 0; i < replacement.length; i++) {
modHeader.replaceAll(Pattern.quote(replacement[i][0]), Pattern.quote(replacement[i][1]));
System.out.println(modHeader);
}
return modHeader;
}

所以上面我有这个方法,它将下面数组中的所有 [i][0] 参数更改为 [i][1] 参数。这应该允许将字符串放入文件名中。但是,我得到的打印结果发布在下面,您会注意到它与该方法试图执行的操作不匹配......有人对如何解决这个问题有任何想法吗?

起始字符串:

Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>

数组:

public static final String[][] replacement = new String[][] {{" ", "_"}, {"\\", "(backslash)"}, {"/", "(forwardslash)"}, {":", "="}, {"*", "(asterisk)"}, {"?", "(q-mark)"}, {"\"", "(quotation)"}, {"<", "("}, {">", ")"}, {"|", "(bar)"}};

打印:

2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>
2013-09-14 11:15:21 [INFO] Game <UUID: a1ddc565-8205-45e6-9c9e-4855ee271c0b>

最佳答案

字符串是不可变的,因此您必须重新分配modHeader:

modHeader = modHeader.replaceAll(...);

顺便说一句,您可能想使用 replace()相反,因为您不处理正则表达式。即:

modHeader = modHeader.replace(replacement[i][0], replacement[i][1]);

这将消除烦人的 Pattern.quote() 调用。

关于java - 为什么这不修改以符合合规性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18803309/

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