public class Main { public static void main(String[] args) { File file = new File("abc.txt"); Scanner in = null; int i = 0; Scanner scanner = new Scanner(System.in); System.out.print("Enter word to search for: "); String searchFor = scanner.nextLine(); try { in = new Scanner(file); while (in.hasNext()) { String line = in.nextLine(); if (line.contains(searchFor)) System.out.println(line); } scanner.close(); } catch (FileNotFoundException e) { System.out.println("Error " + e.getMessage()); } } }
Koodihan toimii tuollaisenaan, mutta miten tuohon saisi lisättyä ehdon jos ko. sanaa ei löydykkää tiedostosta?
Pitää laittaa if-lauseessa tulostuksen lisäksi myös merkintä johonkin muuttujaan (esim. boolean found), kun rivi löytyy. Silmukan jälkeen voi tarkastaa siitä, tuliko yhtään osumaa.
Metabolix kirjoitti:
Pitää laittaa if-lauseessa tulostuksen lisäksi myös merkintä johonkin muuttujaan (esim. boolean found), kun rivi löytyy. Silmukan jälkeen voi tarkastaa siitä, tuliko yhtään osumaa.
Tuota jo yritinkin aiemmin tuloksetta, kunnes huomasin, että tuossa while-silmukassa on virhe aaltosulkeen kanssa.
Alla toimiva koodin pätkä.
Ayway, kiitoksia!
public class Main { public static void main(String[] args) { File file = new File("abc.txt"); Scanner in = null; boolean found = false; Scanner scanner = new Scanner(System.in); System.out.print("Enter word to search for: "); String searchFor = scanner.nextLine(); try { in = new Scanner(file); while (in.hasNext()) { String line = in.nextLine(); if (line.contains(searchFor)) { System.out.println(line); found = true; } } if (!found) { System.out.println("Word not found!"); } } catch (FileNotFoundException e) { System.out.println("Error " + e.getMessage()); } } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.