2016-06-25 6 views
-6

Ich versuche, in einer Zeichenfolge aus einer Textdatei zu lesen, aber es wird bei den ersten Leerzeichen angehalten. Ich dachte, ich versuche, die Zeichenfolge mit dem umgebenden "$" zu "gruppieren", aber das funktioniert nicht. Das Programm liest eine Zeile einer Datei mit Koordinaten und einem String ein. Ich brauche es, um alle Texteingaben in dieser Zeile zu lesen und in einer Zeichenfolge zu speichern. Bitte und Dank für jede Hilfe :)Wie bekomme ich Scanner, um Leerzeichen in Java-Zeichenfolge zu überspringen

Log.d(null, "scanning inputStream"); 
    try { 
     do { 
      String latlngString; 
      String memory; 
      //skip 'latlng:' 
      scanner.skip("lat/lng:"); 
      //scan coordinates 
      latlngString = scanner.next(); 

      double latitude = 0; 
      double longitude = 0; 
      if (latlngString != null) { 
       latlngString = latlngString.startsWith("(") ? latlngString.substring(1) : latlngString; 
       latlngString = latlngString.endsWith(")") ? latlngString.substring(0, latlngString.length() - 1) : latlngString; 

       String[] latlng = latlngString.split(","); 
       latitude = Double.parseDouble(latlng[0]); 
       longitude = Double.parseDouble(latlng[1]); 
      } 
      //scan memory 

      for(int i = 0;i<10;scanner.hasNext()){ 
      } 
      memory = scanner.next(); 

      //this should remove the dollar signs from memory, and then save it as one string 
      if(memory != null){ 
       memory = memory.startsWith("$") ? memory.substring(1) : memory; 
       memory = memory.endsWith("$") ? memory.substring(0, memory.length() - 1) : memory; 
       Log.d(null, latlngString + " " + memory); 
      } 
      //output of memory, latitude and longitude 
     } while (scanner.hasNextLine()); 
    }catch(NoSuchElementException n){ 
     Log.wtf(null, "nosuchelement"); 
    } 
+0

Ich versuche nur den zweiten Teil der Zeile zu lesen. Ich ziehe die ganze Zeile ein und spalte sie dann. – kevinb

+1

Ihr Code stoppt beim ersten Leerzeichen und geht wegen Ihrer Endlosschleife nicht weiter: 'for (int i = 0; i <10; scanner.hasNext()) {} '. Die Iteratorvariable "i" wird niemals inkrementiert, so dass sie nur in dieser Schleife rotiert und 100% CPU verbraucht. – Andreas

Antwort