gpt4 book ai didi

java - 如何删除字符串中/*和*/表示的注释?

转载 作者:行者123 更新时间:2023-11-30 05:47:32 26 4
gpt4 key购买 nike

我的任务是创建一个方法来删除字符串中/* 和 */之间的文本。此方法必须删除字符串中的所有注释。

示例:“敏捷的棕色/\*和红色\*/狐狸跳过了懒狗/\*躺在门廊\*/。”变成“敏捷的棕色狐狸跳过了懒狗。

我通过查找“/*”和“*/”的索引,并使用这些索引创建子字符串并将其删除,成功地删除了一条评论。我创建了一个循环来检查/* 的索引是否不等于 1,如果不等于,则会删除注释。

但是,删除一条注释后,删除后留下了/* 和 */标记,所以我写的删除方法不起作用,因为它删除了空/**/内的代码标记,并且不继续进行下一条评论。我尝试通过使用前面提到的索引创建一个包含整个注释的子字符串,并创建一个作为字符串其余部分的子字符串,删除第一个字符串中的注释标记,然后组合来删除注释标记将字符串重新组合在一起,形成一个整体。

当我运行该方法和循环时,它会删除第一个注释及其各自的注释标记,但第二个注释完全不受影响。

public static String removeOneComment(String s)
{
String start = "/*";
String end = "*/";
int i = s.indexOf(start);
int i1 = s.indexOf(end);
String s1 = s.substring(i, i1);
s = s.replaceAll(s1, "");
String s1s = s.substring(0, i1 + 2);
String s1s1 = s.substring(i1 + 2);
s1s = s1s.replaceAll("/\\*", "");
s1s = s1s.replaceAll("\\*/", "");
s = s1s + s1s1;
return s;
}
public static String removeComments(String s)
{
String start = "/*";
String end = "*/";
for (int i = s.indexOf(start); i != -1; i = s.indexOf(start, i + 1));;
{
s = removeOneComment(s);
}
return s;
}

通过运行此代码,我得到的结果是“敏捷的棕色狐狸跳过了懒狗/*躺在门廊上*/。”

原始字符串:“敏捷的棕色/\*和红色\*/狐狸跳过了懒狗/\*躺在门廊\*/。”变成想要的字符串:“敏捷的棕色狐狸跳过了懒狗。

任何帮助将不胜感激。

最佳答案

你应该使用这个。

public static String removeComments(String s)
{
return s.replaceAll("\\/\\* *\\w+ *\\*\\/", "");
}

关于java - 如何删除字符串中/*和*/表示的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54586730/

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