Javaでの.javaソースファイルのレクサーの作成。私は文字のストリームを持っていて、レクサーが一行のコメントをスキップさせようとしています。Javaソースファイルの新しい行:Characterクラスを使ってそれらをテストするには?
私はそれぞれの文字をループします。私の仮説は、最初にコメントの//を検出し、次の改行文字まで次の文字をスキップすることができるということです。しかし、それは動作することはできませんし、私は新しい行の文字を検出することはできません。これは私のコードです:
//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クラスを使用して、または他の方法でそれらを検出することは可能ですか?
事前に感謝します。
SOLUTION:
改行文字はBufferedReaderのを使用して.javaソースファイルからコードを読み取り、StringBuilderのに行を追加しながら、失われたように見えます。この問題は、代わりにorg.apache.commons.io.FileUtilsのreadFileToString()を使用して.javaファイルを読み込んで解決しました。
ここで、inCommentをtrueに設定しますか? if(currentChar == '/')部分の後にする必要があります。 – huelbois
私は/前をチェックします。次に、ブロックとシングルラインのコメントを区別するために、別の/または*を再度チェックします。しかし、あなたは正しいです、ありがとうございます。 – jpaw