例如,考虑以下文本:
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.*;
而已!!!!
谁能指出我哪里出错了?