たとえば、次のテキストを考えてみましょう。
import java.util.*;
/* My program
by */
public class Program {
public static void main(String[] args) {
System.out.println("Hello, world!"); // a println
}
public static /* Hello there */ void foo() {
System.out.println("Goodbye!"); // comment here
} /* */
}
ファイルにこのテキストが含まれている場合、プログラムは次のテキストを出力する必要があります。
import java.util.*;
public class Program {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
public static void foo() {
System.out.println("Goodbye!");
}
}
さて、私はそのためのコードを書き、stripComments
問題のファイルのスキャナー入力を受け入れる関数に名前を付けました:
public void stripComments(Scanner input){
while(input.hasNextLine()){
boolean flag=false;
String scan=input.nextLine();
Scanner line=new Scanner(scan);
while(line.hasNext()){
String token=line.next();
if(token.equals("/*")){
while(line.hasNext()){
if(line.next().equals("\\*")){
token=line.next();
flag=true;
break;
}
}
if(!flag){
while(input.hasNextLine()){
scan=input.nextLine();
line=new Scanner(scan);
while(line.hasNext()){
token=line.next();
if(token.equals("*\\")){
token=line.next();
flag=true;
break;
}
}
}
}
}
else{
System.out.print(token+" ");
}
}
System.out.println();
}
}
ただし、生成される出力は次のとおりです。
import java.util.*;
それでおしまい!!!!
誰かが私が間違っていた場所を指摘できますか?