2016-03-23 9 views
1

deyim hatası yok Dizilimdeki bir dizenin bir sözcükle eşleşip eşleşmediğini görmeye çalışıyorum. Eğer öyleyse, If ifadesini yapın.Uzak ve geniş arandı - hala bir çözüm için

Pasta gibi basit sesler ancak If ifadesi dizeden diziyi görmez!

Dizilim (templar) "non" lerden başka bir şey içermiyor, bu yüzden eğer bir "Stat" durumunda yanlış bir şey olduğunu biliyorum. Burada

kod snippet'idir:

temps farklı hat üzerinde "olmayan" s içeren bir dizidir
if ("non".equals(temps.get(3))) { 
     System.out.println("Don't know."); 
    } 

.

İşte durumda herkes tam kod merak olmasıdır:

public class Dump { 

    public static void main(String[] args) throws IOException { 
    String token1 = ""; 

    //Reads in presidentsUSA.txt. 
    Scanner inFile1 = new Scanner(new File("presidentsUSA.txt")); 

    //Splits .txt file via new lines. 
    inFile1.useDelimiter("\\n"); 

    List<String> temps = new ArrayList<String>(); 

    while (inFile1.hasNext()) { 
     token1 = inFile1.next(); 
     temps.add(token1); 
    } 
    inFile1.close(); 

    // Stores each new line into an array called temps. 
    String[] tempsArray = temps.toArray(new String[0]); 

     if ("non".equals(temps.get(3))) { 
      System.out.println("Don't know."); 
     } 

    } 
} 
+2

Bu, hata ayıklayıcısına kendinizi farmilar haline getirebileceğiniz yeni bir örnektir. – Peter

+0

Temps.get (3) ve temps.get (3) .length() yazdırmayı deneyin. Tam olarak ne istediğini bulamazsın. Temps.get (3) .startsWith ("non") kullanılarak düzeltilebilir. – BPS

cevap

0

en olası açıklama neden senin deyimi yanlış dönerse Windows OS üzerinde olmasıdır.

bunu

olmayan \ r

ve non \ r gibi içerikleri gösterecektir gelmez kodunuzu hata ayıklama ve temps.get(3) izlersen eşit değildir olmayan

Çözüm:

inFile1.useDelimiter("\\r\\n"); 

Kabul edilen yanıtı buradan kontrol edin (özellikle point 4): Difference between \n and \r?

+0

Kesinlikle smashing. Sağol Moh-Aw! – Lewie

İlgili konular