Написание лексера исходных файлов .java на Java.У меня есть поток символов, и я пытаюсь заставить лексера пропустить однострочные комментарии.
Я перебираю каждый символ, и моя гипотеза заключается в том, что должна быть возможность сначала обнаружить // комментарий, а затем пропустить последующие символы до следующего символа новой строки.Но это не может работать, и я не могу обнаружить любой символ новой строки.Это мой код:
//is it a single line comment?
if(currentChar == '/') {
//loop through char:s until next new line
while(inComment == true) {
//increment loop
i++;
//extract next char
currentChar = stringInput.charAt(i);
//check if current character is a new line
if(( currentChar == '\n' ) || ( currentChar == '\r' )) {
inComment = false;
System.out.println("End Of Line Comment.");
}
}
}
Итак, есть ли в исходных файлах .java символы новой строки?Можно ли их обнаружить с помощью класса Character или любым другим способом?
Заранее большое спасибо!
РЕШЕНИЕ:
Новая строкакажется, что символы теряются при чтении кода из исходного файла .java с использованием BufferedReader и добавлении строк в StringBuilder.Проблема была решена путем чтения файла .java с использованием readFileToString () из org.apache.commons.io.FileUtils, что сработало!