HackerRank — Java End-of-file

EOF Nedir? hasNext() ve nextLine() kullanımı, Java End-of-file sorusunun çözümü

Ayşe Demirel Deniz
2 min readSep 20, 2024

HackerRank üzerindeki Java problemlerini çözüyoruz. Bu dokuzuncu problem. Eğer diğer problem çözümlerini okumadıysanız önce onlara bakmanızı tavsiye ederim, hepsinin toplu hali:

Önce problemi anlayalım sonra da çözümüne geçelim. Problemi anlama kısmını okuduktan sonra problemi çözmeyi denemenizi sonra da buradaki çözümle karşılaştırmanızı şiddetle tavsiye ederim :)

Problemin linki 👇

Problemi anlayalım

Dosya Sonu (End Of File — genellikle EOF olarak kısaltılır), bilgisayar işletim sisteminde bir veri kaynağından daha fazla verinin okunamadığı bir durumdur.

Bu problemde inputtan aldığımız veriyi EOF olana kadar okuyacağız, sonra bu input’taki veriyi “satır numarası — satır verisi” şeklinde print edeceğiz.

Scanner.hasNext() metodu bu şekilde satır satır aldığımız toplu verilerde sonraki satıra ulaşmaya yarar.

Problem Beklentisi

Bu problem için HackerRank üzerinde sağlanan sabit bir kod yok, main metodumuz boş, gönlümüzce dolduracağız :D

  • İlk önce input’u okuyacağız
  • Sonra da input’u satır numarası ile birlikte print edeceğiz

Örnek Input:

Hello world
I am a file
Read me until end-of-file.

Örnek Output:

1 Hello world
2 I am a file
3 Read me until end-of-file.

Problem Çözümü

Bu problemde tek çözüm sunacağım, kısa ve öz oldu. Tek döngü complexity O(n).

 public static void solutionOne() {
Scanner scanner = new Scanner(System.in);
int lineNum = 1;
while (scanner.hasNext()) {
System.out.println(lineNum + " " + scanner.nextLine());
lineNum++;
}
}

Scanner.hasNext() ile EOF olana kadar satır satır okuyoruz. Döngü içerisinde kullanılması önemli. EOF olmadığı sürece döngünün içerisine girecek. Döngü içerisinde de nextLine() ile satır satır inputu elde edeceğiz. Bu satırı da lineNum ile yani satır numarası ile birlikte print ediyoruz.

--

--