我试图在我的程序中创建一个方法,这将使我能够搜索字符串,然后打印该字符串位于文本文件中的整行。有什么指针吗?我试图这样做,但我一直没有得到任何结果-.-
import java.util.*;
import java.io.*;
public class Oblig2 {
public static void main (String[] args) {
final Scanner input = new Scanner (System.in);
int menyvalg=0;
Meny menyen = new Meny();
menyen.meny();
}
}
//Selve menyen til programmet i en egen klasse.
class Meny {
PrintWriter fil;
Scanner input = new Scanner (System.in);
public void meny() {
try{
fil=new PrintWriter(new FileWriter("fugler.txt", true));
} catch (IOException e) {
System.out.println("Filen finnes ikke");
}
int menyvalg=0;
int menykall=1;
//Menyen vil her bli repetert helt til en taster inn 4 og endrer menykall til 0.
do{
//Selve menyen vil bli repetert helt til brukeren velger en av menyens alternativer.
do{
System.out.println("====== Meny for registrering av fugleobservasjoner =====");
System.out.println("\n1. Registrer en fugleobservasjon");
System.out.println("2. Skriv ut alle fugleobservasjoner av en type");
System.out.println("3. Skriv ut alle fugleobservasjoner på ett bestemt sted");
System.out.println("4. Avslutt systemet");
System.out.println("\nVennligst velg en aksjon: ");
menyvalg = input.nextInt();
} while(menyvalg < 1 || menyvalg > 4);
switch (menyvalg){
case 1: registrering();
break;
case 2: //fugleType();
break;
case 3:
break;
case 4:menykall=0;
}
}while(menykall>=1);
}
void registrering () {
System.out.println("Velkommen til registreringen av fugleobservasjoner.");
System.out.println("Begynner registreringen (Lagrer seg i filen fugler.txt): ");
try {
fil = new PrintWriter(new FileWriter("fugler.txt", true));
System.out.println("\nVennligst tast inn fugletypen: ");
String fugletype = input.next();
fil.write(fugletype + ",");
System.out.println("Tast inn fuglens kjonn (M/H/X): ");
char fuglekjonn = input.next().charAt(0);
fil.write(fuglekjonn + ",");
System.out.println("Tast inn observasjonslokasjon: ");
String lokasjon = input.next();
fil.write(lokasjon + ",");
System.out.println("Tast inn dato for observasjon (Som en string på formen mai2012): ");
String dato = input.next();
fil.write(dato);
fil.close();
}catch(Exception e){
System.out.println("Åpning av fil feilet");
}
}
这是我尝试制作方法的地方:
void fugleType () {
System.out.println("Her kan du finne registrerte observasjoner med søk på typen fugl.");
try{
Scanner output = new Scanner("fugler.txt");
System.out.println("Vennligst spesifiser fugletype: ");
int linjenummer = 0;
while (output.hasNext()){
String fugletype = output.next();
linjenummer++;
if(fugletype.indexOf("fugler.txt")){
System.out.println (linjenummer);
}
}
}catch (Exception e) {
System.out.println("Fant ikke filen");
}
}
} `
答案 0 :(得分:0)
if(fugletype.indexOf("fugler.txt"))
无效声明。把它写成if(fugletype.indexOf("fugler.txt")!= -1)
答案 1 :(得分:0)
try{
Scanner fr = new Scanner(new FileReader("fugler.txt"));
System.out.println("Vennligst spesifiser fugletype: ");
int linjenummer = 0;
while (fr.hasNextLine()){
String fugletype = fr.nextLine();
linjenummer++;
Scanner s = new Scanner(fugletype);
while(s.hasNext()){ // Splits at " "
String myString = s.next();
if(myString.equals(stringUWant){
System.out.println (fugletype); //entire line
}
}
}
}catch (Exception e) {
System.out.println("Fant ikke filen");
}
如果要查找其中包含空格的字符串(例如“This is a String”),我建议使用contains方法:
try{
Scanner fr = new Scanner(new FileReader("fugler.txt"));
System.out.println("Vennligst spesifiser fugletype: ");
int linjenummer = 0;
while (fr.hasNextLine()){
String fugletype = fr.nextLine();
linjenummer++;
if(fugleType.contains(stringUwant){
System.out.println (fugletype); //entire line
}
}
}catch (Exception e) {
System.out.println("Fant ikke filen");
}