axelb87 Postad 22 september, 2013 Share Postad 22 september, 2013 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 More sharing options...
jalec Postad 24 september, 2013 Share Postad 24 september, 2013 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 More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.