我需要编写一个Java方法
public static String removeComments(String code);
从String中删除所有Java注释。我知道之前已经问过这样的问题,但是:
对于像text = text.replaceAll("(?:/\\*(?:[^*]|(?:\\*+[^*/]))*\\*+/)|(?://.*)", " ");
这样的多行注释使用复杂的正则表达式表达式在小测试中工作正常,但在我的实际案例中经常会抛出Stackoverflow(正则表达式中的|会导致分支)。
很多人发布了一些“简单”的功能,你可以轻松地构建反例(比如在字符串中使用//,例如在URL中)。
那么有一种可靠的,非递归的方法来解决这个问题吗?