Iam разрабатывает программу для анализа исходного кода программ. Теперь у меня есть проблемы подсчета результатов, вот мой исходный код:cloc, как суммировать результаты?
public void walk(String path) throws FileNotFoundException {
File root = new File(path);
File[] list = root.listFiles();
int countFiles = 0;
if (list == null) {
return;
}
for (File f : list) {
if (f.isDirectory()) {
walk(f.getAbsolutePath());
}
if (f.getName().endsWith(".java")) {
System.out.println("File:" + f.getName());
countFiles++;
Scanner sc = new Scanner(f);
int count = 0;
while (sc.hasNextLine()) {
count++;
sc.nextLine();
}
Scanner sc2 = new Scanner(f);
int lower = 0;
int upper = 0;
int digit = 0;
int whiteSpace = 0;
while (sc2.hasNextLine()) {
String str = sc2.nextLine();
for (int i = 0; i < str.length(); i++) {
if (Character.isLowerCase(str.charAt(i))) {
lower++;
} else if (Character.isUpperCase(str.charAt(i))) {
upper++;
} else if (Character.isDigit(str.charAt(i))) {
digit++;
} else if (Character.isWhitespace(str.charAt(i))) {
whiteSpace++;
}
}
}
System.out.println("Your code contains: " + count + " Lines!, Out of them:");
System.out.println("lower case: " + lower);
System.out.println("upper case: " + upper);
System.out.println("Digits: " + digit);
System.out.println("White Spaces: " + whiteSpace);
}
System.out.println("You have in total: " + countFiles);
}
}
Первый вопрос: когда речь идет о countFiles (который должна сказать, сколько .java файлов или классов, которые вы имеете в своем коде) его результаты подсчета и печати выглядят следующим образом: у вас есть в общей сложности = 1 файл у вас есть в общей сложности = 2 файл , так как я могу сделать это, чтобы напечатать мне окончательный результат напрямую, который равен 2 в этом случае?
Второй вопрос: как я могу полностью напечатать сумму строк в коде, вместо того, чтобы показывать их для каждого класса самостоятельно?
Благодаря
«Первый вопрос», перемещая System.out вне цикла в файле –
«Второй вопрос»: тот же самый материал , Возможно, вам следует прочитать несколько руководств по переменным * scope * –
@RC. Я попытался вытащить его, давая действительно потрясающий результат! – user5923402