Java-Text-Eingabe: Wie Ignoriere Zeilen, beginnend mit bestimmten Zeichen, die in Ihnen?

Ich grundsätzlich ignorieren möchten bestimmte Zeilen mit Zeichen in Ihnen, wie wenn es eine Linie

//hello, i'm bill

Möchte ich diese Zeile ignorieren, während Sie Lesen, denn es enthält die Zeichen "//". Wie kann ich das tun? Ich habe versucht, die Methode skip(), aber es gibt mir Fehler.

public String[] OpenFile() throws IOException {

  FileReader reader = new FileReader(path);
  BufferedReader textReader = new BufferedReader(reader);

  int numberOfLines = readLines();
  String[] textData = new String[numberOfLines];
  int i;

  for (i=0; i<numberOfLines; i++) {
      textData[i] = textReader.readLine();
  }

  //close the line-by-line reader and return the data
  textReader.close();
  return textData;
}

int readLines() throws IOException {
  FileReader reader = new FileReader(path);
  BufferedReader textReader = new BufferedReader(reader);
  String line;
  int numberOfLines = 0;

  while ((line = textReader.readLine()) != null) { 
    //I tried this:
    if (line.contains("//")) {
      line.skip();  
    }
    numberOfLines++;       
  }    
  reader.close();  
  return numberOfLines;
}

Update: HIER ist MEINE MAIN-METHODE:

try{
 ReadFile files = new ReadFile(file.getPath());
 String[] anyLines = files.OpenFile();
 }
Wie funktioniert das sogar kompilieren? Ich kann nicht finden, eine "skip" - Methode der String-Klasse.
Sie erkennen, dass die Datei gelesen wird zweimal, in den code eingefügt nach dem Bearbeiten?
Die readLines() Methode wäre genauer genannt countLines() oder countNonCommentLines(). Diese ganze übung wäre übersichtlicher & schneller durch das Lesen der Zeilen, dass eine Struktur zu erweitern, wie gebraucht, wie ein ArrayList, da es scheint, dass Sie nur verwenden Sie die count-zu etablieren, der die Größe eines String[].
Es Lesen nicht die Datei zweimal, nur zählt die Anzahl der Zeilen einer Datei und gibt Sie aus (in meiner main-Methode).
Sie sind, so Lesen Sie es zweimal. Zunächst zählen Sie die Anzahl der Zeilen (da wo die Lösungen gepostet werden, zählen nicht die // Linien, wie Sie wollen), dann gehen Sie zurück zu Ihrem Haupt-Funktion und die Ausgabe aller Zeilen (da wo die Lösungen die gepostet wurden waren nicht angewendet). Jedoch wurden die Linien miscounted, so dass Sie nur die ersten N Zeilen, wobei N die Anzahl der nicht-// Linien. Dies erklärt Ihre "cutoff".

InformationsquelleAutor lrvilnius | 2011-05-23

Schreibe einen Kommentar