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

Java - Öppna Scanner efter close();

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);

}

}

Dela detta inlägg


Länk till inlägg
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.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×