我正在编写一个代码来计算代码行数,除了注解和空行,但是我仍然停留在如何使用readline()方法来代替text变量,因为它只用于bufferedreader类。我不想使用bufferedreader。我要它保持弦。我能做些什么来解决这个问题?
public static int count(String text) {
int count = 0;
boolean commentBegan = false;
String line = null;
while ((line = text.readLine()) != null) {
line = line.trim();
if ("".equals(line) || line.startsWith("//")) {
continue;
}
if (commentBegan) {
if (commentEnded(line)) {
line = line.substring(line.indexOf("*/") + 2).trim();
commentBegan = false;
if ("".equals(line) || line.startsWith("//")) {
continue;
}
} else
continue;
}
if (isSourceCodeLine(line)) {
count++;
}
if (commentBegan(line)) {
commentBegan = true;
}
}
return count;
}
private static boolean commentBegan(String line) {}
private static boolean commentEnded(String line) {}
private static boolean isSourceCodeLine(String line) {}
我上面写的text.readline()与i不相关,因为它给出了一个错误,我已经编写了commentbegind()、commentend()和issourcecodeline()方法的完整代码。我只需要解决readline()方法的问题。
1条答案
按热度按时间icnyk63a1#
我的建议是识别循环之前的线路,并改变其机制:
分裂
text
由line.separator
将返回其中的所有行,存储在array
. 迭代它并使用您自己的逻辑。