siDDis Skrevet 11. september 2005 Del Skrevet 11. september 2005 Eg lager ein metode som gjer at eg kan lesa in det eg skriver på tastaturet i programmet mitt. Problemet er at når eg skriver inn så må eg skrive det inn 2 gonger kvar gang. Ein gang er jo nok import java.io.*; public class KeyboardInput { /* Here I will create the input methods * for my application. */ private static BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); private String stringInput=null; private int number; public KeyboardInput(){ } public int intIn(){ try{ stringInput = stdin.readLine(); number = Integer.parseInt( stringInput ); // converts a String into an int value } catch (Exception e){ System.out.println ("Error reading Input"); } return number; } } Korleis kan eg fikse på sånt at eg bare skriver det inn ein gang. Lenke til kommentar
ELR Skrevet 12. september 2005 Del Skrevet 12. september 2005 (endret) Jeg hadde brukt Scannerklassen (Java 1.5). Da er det bare til å opprette et scannerobjekt, og bruke denne til innlesing. import java.util.Scanner; Scanner lexer = new Scanner(System.in); lexer.nextLine() lexer.next(); lecer.nextInt() etc...... -------------------------- Her er koden fra Terminalklassen vi brukte i INF100 ved UiB. Denne gjør alt du vil fra terminalen på en enkel måte. import java.io.*; /** * Denne klassen tilbyr metoder for innlesing av heltall, flyttall og * strenger fra terminalen. * * Pass pÃ¥ at du legger denne filen i samme katalog som programmene dine, * og kompilerer den før du kjører disse. * * @version 2.0 * @author Rolf W. Rasmussen * @author Khalid A. Mughal * @author Torill Hamre */ public final class Terminal { private Terminal() {}; private static BufferedReader leser = new BufferedReader( // (1) new InputStreamReader(System.in) ); /** * Leser en int-verdi fra terminalen. */ public static int lesInt() { // (2) while (true) // (3) try { return Integer.parseInt( leser.readLine() ); } // (4) catch (IOException io) { reportError(); } // (5) catch (NumberFormatException nf) { reportError(); } // (6) } /** * Leser en double-verdi fra terminalen. */ public static double lesDouble() { while (true) try { return Double.parseDouble( leser.readLine() ); } catch (IOException io) { reportError(); } catch (NumberFormatException nf) { reportError(); } } /** * Leser en linje fra terminalen og returnerer denne som et objekt * av typen String. */ public static String lesString() { while (true) try { return leser.readLine(); } catch (IOException io) { reportError(); } } /** * Skriver ut en streng eller strengrepresentasjonen av en annen verdi * til terminalen og gÃ¥r videre til neste linje. */ public static void promptln( Object str ) { System.out.println( str ); } /** * Skriver feilmelding og gÃ¥r videre til neste linje pÃ¥ terminalen * slik at brukeren kan taste inn verdi pÃ¥ nytt. */ private static void reportError() { System.out.println( "Feil i inndata. Prøv pÃ¥ nytt!" ); } } Endret 12. september 2005 av Pitbullo Lenke til kommentar
siDDis Skrevet 15. september 2005 Forfatter Del Skrevet 15. september 2005 Det hjalp ikkje så veldigt, eg må enda skrive inn tallet 2 ganger i terminalen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå