gpt4 book ai didi

java - 在 Java 中检查一行是否有效

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

我想检查以下内容:

VALID LINES;
/**/ some code
*/ some code /** dsfsdkf sd**/

NOT VALID LINES;
/**/ //some code
*/ /***/ //somecode

所以基本上,如果注释之外有一行代码,那么它是有效的,否则无效。

处理这种验证的最佳方法是什么?

注意:
对于 */ 我假设 /* 之前已经打开过一些行。

最佳答案

我相信这应该相当快。

import java.io.*;

class Test {

public static void main(String[] args) throws IOException {
StringBuffer buf = new StringBuffer();
BufferedReader r = new BufferedReader(new FileReader("src/Test.java"));

final String nl = System.getProperty("line.separator");
String line;
while (null != (line = r.readLine()))
buf.append(line).append(nl);

for (String code : buf.toString().split("(?ms)/\\*.*?\\*/|//[^\\n]*"))
System.out.println(code);
}
}

如果您稍微了解一下 reg-exps 的内部原理,您就会意识到,一旦底层自动机被编译并最小化(至少对于像上面这样的简单正则表达式),正则表达式就非常有效。无论您如何实现算法,它仍然需要执行与 reg-exp 引擎在这种情况下执行的工作大致相同的工作。

(如果您查看 String.split 方法,您会注意到内部正则表达式被一劳永逸地编译为 Pattern。)

关于java - 在 Java 中检查一行是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018285/

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