PDA

View Full Version : [java]gestire l'input


dadedj
15-05-2005, 20:54
Ciao a tutti!
Sto cercando di imparare a programmare in java ma ho alcuni problemi con l'input.

In particolare non riesco a capire come fare a inserire numeri interi durante l'esecuzione di un programma...

So che esiste un metodo read() della classe FileReader che restituisci gli interi ma non so come usarlo

Ho provato con questo programmino :

import java.io.*;

public class Numeri{
public static void main(String args[]) throws IOException {
int i,x,y;
FileReader frd=new FileReader(args[0]);
System.out.println("Inserisci il primo numero: ");
i=frd.read();
System.out.println("Inserisci il secondo numero: ");
x=frd.read();
y=x+i;
System.out.println("Il risultato è: "+y);
frd.close();

}
}

compila ma quando lo mando in esecuzione mi da un eccezione perchè sbablio qualcosa con args[0]

Sono sulla giusta strada o è completamente sbagliato? :D

Grazie!

Ziosilvio
16-05-2005, 09:12
Tieni a mente che tutti gli input che dai da tastiera, sono stringhe.
Se ricordo bene, la classe Integer dovrebbe avere un metodo statico parseInt fatto apposta per convertire l'output di uno stream di testo in un int; l'input dovrebbe essere un riferimento a BufferedReader, ma non ne sono sicuro. In pratica, la strategia e' una cosa del tipo:
BufferedReader reader = new
BufferedReader(new InputStreamReader(System.in));
int i = Integer.parseInt(reader);
Ribadisco che non ne sono del tutto sicuro (e' da parecchio che non uso Java): prova a dare un'occhiata alla documentazione.

Angus
16-05-2005, 09:20
Prima versione:


public class ConsoleTest {
public static void main(String[] args)
throws IOException {

int i,x,y;
String s;
BufferedReader keyboard =
new BufferedReader(new InputStreamReader(System.in));
System.out.println("Inserisci il primo numero: ");
s = keyboard.readLine();
i = Integer.parseInt(s);
System.out.println("Inserisci il secondo numero: ");
s = keyboard.readLine();
x = Integer.parseInt(s);
y = x + i;
System.out.println("Il risultato è: " + y);
keyboard.close();

}
}

Angus
16-05-2005, 09:25
Seconda versione (jdk 1.5):

public class ConsoleTest {
public static void main(String[] args)
throws IOException {

int i,x,y;
Scanner keyboard = new Scanner(System.in);
System.out.println("Inserisci il primo numero: ");
i = keyboard.nextInt();
System.out.println("Inserisci il secondo numero: ");
x = keyboard.nextInt();
y = x + i;
System.out.printf("Il risultato è: %d", y);
keyboard.close();

}
}

dadedj
16-05-2005, 16:42
Grazie a tutti!

Ora posso continuare il mio lavoro :D

ciao a tutti