2016-06-25 29 views
-6

我試圖從文本文件中讀取字符串,但它在第一個空白處停止。我以爲試圖用「周圍的$」對字符串進行「分組」,但那不起作用。程序用座標和字符串讀入一行文件。我需要它讀取這行中剩下的所有文本輸入,並將其存儲到一個字符串中。請和感謝所有幫助:)如何讓掃描儀跳過Java字符串中的空間

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

我只是試圖讀取該行的第二部分。我正在拉整線,然後分裂它 – kevinb

+1

您的代碼將停止在第一個空白處,並且由於您的無限循環無法繼續前進:'for(int i = 0; i <10; scanner.hasNext() ){}'。 Iterator變量'i'永遠不會增加,所以它會在該循環中旋轉,消耗100%的CPU。 – Andreas

回答