J'ai écrit le programme suivant pour lire un fichier et ignorer les commentaires, cela fonctionne pour les commentaires sur une seule ligne, mais pas pour les lignes multiples. Quelqu'un sait-il pourquoi? Je n'ai pas besoin de m'inquiéter de "//" dans Strings. Seuls les commentaires java-à-dire "//" et "/ * * /"Comment ignorer les commentaires avec le lecteur de tampon?
code:
import java.io.*;
public class IfCounter2
{
public static boolean lineAComment(String line)
{
if (line.contains("//"))
return true;
return false;
}
public static boolean multiLineCommentStart(String line)
{
if (line.contains("/*"))
return true;
return false;
}
public static boolean multiLineCommentEnd(String line)
{
if (line.contains("*/"))
return true;
return false;
}
public static void main(String[] args) throws IOException
{
String fileName = args[0];
int numArgs = args.length;
int ifCount = 0;
// create a new BufferReader
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = null;
StringBuilder stringBuilder = new StringBuilder();
String ls = System.getProperty("line.separator");
line = reader.readLine();
// read from the text file
boolean multiLineComment = false;
while ((line = reader.readLine()) != null)
{
if (!multiLineCommentStart(line))
{
multiLineComment = true;
}
if (multiLineComment) {
if (!multiLineCommentEnd(line))
{
multiLineComment = false;
}
}
if (!lineAComment(line) && !multiLineComment)
{
stringBuilder.append(line);
stringBuilder.append(ls);
}
}
// create a new string with stringBuilder data
String tempString = stringBuilder.toString();
System.out.println(stringBuilder.toString());
}
}
Comment utilisez-vous ces méthodes? il semblerait que le problème soit dans le code qui implémente ceci à moins que je ne comprenne mal la question. – Andy
Dans le principal juste en dessous des méthodes :) – josh
Désolé, n'a pas vu la barre de défilement ...:/ – Andy