Just nu i M3-nätverket
Jump to content

Java - Öppna Scanner efter close();


axelb87

Recommended Posts

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

}

}

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...