Just nu i M3-nätverket
Gå till innehåll

Java - Öppna Scanner efter close();


axelb87

Rekommendera Poster

Jag håller på och lär mig Java och har problem att öppna scanner, vid andra loopen i for-satsen i main ges jag inte möjlighet att mata in värden på nytt. 
Vad kan jag göra för att öppna Scanner vid andra körningen av  textMetod() ?
 
import java.util.*;
class Text
{

public static void main(String[] arg)

{

for(int i = 0;i<2;i++)

System.out.println(textMetod());

}

private static String textMetod() //retunerar antalet rader, ord och tecken

{

Scanner sc = new Scanner(System.in), sc2 = new Scanner(System.in);

int rader=0, ord=0, tecken=0;

String rad;

 

System.out.println("Ange en text med flera rader?(Avsluta med ctrl+z)");

while(sc.hasNextLine())

{

rad = sc.nextLine();

rader++;

tecken += rad.length();

sc2= new Scanner(rad);

 

while(sc2.hasNext())

{

sc2.next();

ord++;

}

}

sc2.close();

sc.close();

 

return  "\nRader \t Ord \t Tecken\n" + String.format("%d \t %d \t %d", rader, ord, tecken);

}

}

Länk till kommentar
Dela på andra webbplatser

Om du tar bort raderna som stänger Scannrarna (sc2.close() och sc.close()) så fungerar det väl, har inte provat men det borde gå.

 

Annars borde du kunna villkora stängningen av Scannrarna med en if-sats och en räknare, så att stängningen hoppas över första varvet och utförs efter andra varvet.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...