gpt4 book ai didi

java - Java 源文件中的新行 : How to test for them using Character class?

转载 作者:行者123 更新时间:2023-12-01 15:34:19 24 4
gpt4 key购买 nike

用 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类或任何其他方式检测它们?

非常感谢!

解决方案:

使用 BufferedReader 从 .java 源文件读取代码并将行附加到 StringBuilder 时,新行字符似乎丢失了。通过使用 org.apache.commons.io.FileUtils 中的 readFileToString() 读取 .java 文件解决了这个问题,这很有魅力!

最佳答案

你如何读取stringInput?如果您使用 readLine,为什么不遵循以下伪代码:

if (stringInput starts with "//")
readNextLine()

更短且更容易理解。 提示:通读 String API。

关于java - Java 源文件中的新行 : How to test for them using Character class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142659/

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