2016-04-07 20 views
0

Merhaba Bir dosyadaki en uzun sözcüğün göründüğü satır numaralarını bulmam gerekiyor. Aynı uzunluğa sahip iki veya daha fazla farklı kelime varsa, sadece ilkini takip edin. . Ben en uzun kelime izleme yapmış ama en uzun kelime içinde ne çizgiler bulmak için yardıma ihtiyaç Bu uzun sözcüğü bulur benim kodudur:Dosyada en uzun sözcüğün göründüğü satır numaralarını bulun

 while(scan2.hasNextLine()){ 
      String line = scan2.nextLine(); 
      if(line.contains(longestWord)){ 
       longestWordList.add(longestWord); 
      } 
      else{ 
       longestWordList.add(null); 
      } 
     } 
+0

Niçin '' n '' nizde ekliyorsunuz? Ve ben 'longestWordList.add (longestWord)', '' longestWordList.add (line) olmalıdır, ' –

+0

Satır numaralarını izlemek için bir int gereksinimi varsayalım –

+1

En uzun sözcüğün bulunduğunu veya bu süreçte onu bulmak mı? –

cevap

1

Geçerli hat sayısını takip etmek gerek, En uzun kelimenin satır sayısı ve en uzun kelimenin uzunluğu. Her satır için, boşluklara ve noktalama işaretlerine bölünerek çizgiyi bir kelime dizisine bölün. Bunu normal bir ifadeyle yapabilirsin. Sonra her kelimeye en uzun kelimeden daha uzunsa bakın. Yeni bir en uzun kelime bulunursa, mevcut satır numarasını kaydedin ve en uzun kelime uzunluğunu kaydedin.

int lineNumLongest = 0, lineNumCurrent = 0, longestLength = 0; 
while(scan2.hasNextLine()) { 
    lineNumCurrent++; 
    String[] words = scan2.nextLine().split("[ .?!,;:/\\\\]"); 
    for (String word : words) { 
     if (word.length() > longestLength) { 
      lineNumLongest = lineNumCurrent; 
      longestLength = word.length(); 
     } 
    } 
} 
+0

Her türlü noktalama işaretini dahil etmedim, ancak ihtiyacınıza bağlı olarak daha fazlasını eklemek çok kolay. Dosyanız bu algoritmayla çalışmayan şeyler içeriyorsa bildirin. – 4castle

+0

"main" iş parçacığındaki özel durum java.util.regex.PatternSyntaxException: Dizin 10'a yakın kapatılmamış karakter sınıfı[.?!;;/\] ^ – iAmtheDank

+0

Yeterince ters eğik çizgi eklememiş. Şimdi sabit – 4castle

İlgili konular