gpt4 book ai didi

java - 测试两者都包含的字符串结果\n

转载 作者:行者123 更新时间:2023-11-30 06:12:47 25 4
gpt4 key购买 nike

所以我很快就失去了理智试图回答有关代码 war 的问题。代码挑战的目的是剥离字符串,删除代码中的所有注释。

所以我有这段代码,它执行剥离并给出我期望的结果:

   public static String stripComments(String text, String[] commentSymbols) {

boolean ignoreNext = false;
StringBuilder noCommentString = new StringBuilder();
StringBuilder currentLine = new StringBuilder();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (String.valueOf(c).equals("\n")) {
currentLine.append("\\n");
ignoreNext = false;
noCommentString.append(currentLine.toString().trim());
currentLine = new StringBuilder();
continue;
}
if (!ignoreNext) {

for (int j = 0; j < commentSymbols.length; j++) {
if (commentSymbols[j].equals(String.valueOf(c))) {
ignoreNext = true;
noCommentString.append(currentLine.toString().trim());
currentLine = new StringBuilder();
}
}
if (!ignoreNext) {
currentLine.append(c);
}
}
}
return noCommentString.toString();
}

但是由于一些相当奇怪的原因,这个测试失败了:

   @Test
public void stripComments() throws Exception {

String expected = "apples, pears\ngrapes\nbananas";
String actual = StripComments.stripComments("apples, pears # and bananas\ngrapes\nbananas !apples", new String[]{"#", "!"});
assertEquals(expected, actual);
}

如果我要评估代码,实际的字符串是:

apples, pears\ngrapes\nbananas

当然你可以看到预期的字符串是:

apples, pears\ngrapes\nbananas

到底为什么会失败,我确信这与一些奇怪的\n行为有关

最佳答案

我认为你应该附加“\n”而不是“\\n”。这里不需要转义字符。 currentLine.toString().trim() 也会导致删除新行字符,因此请避免使用它。而是尝试使用 currentLine.toString()。某些系统可能需要使用“\r\n”而不是“\n”。如果“\n”不适合您,请尝试此操作。

关于java - 测试两者都包含的字符串结果\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49865238/

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