chefkochbln
Goto Top

Java - Variablen einlesen

Hallo!

Ich habe mal eine Frage, die mir bisher noch nicht beantwortet werden konnte.
Ich möchte gern eine Variable in JAVA einlesen. Wie mache ich das?!?!?!

Content-Key: 23386

Url: https://administrator.de/contentid/23386

Printed on: April 24, 2024 at 06:04 o'clock

Member: rsa
rsa Jan 12, 2006 at 09:48:39 (UTC)
Goto Top
hi,

erstmal was meinst mit variablen?

meinst daten aus einer datei lesen?
Member: chefkochbln
chefkochbln Jan 12, 2006 at 09:52:56 (UTC)
Goto Top
Nun ja. Ich hatte vergessen, dies zu erwähnen - richtig! Ich möchte (auf Konsolenebene) ein stinkeinfaches Programm verfassen und eine vorher dort deklarierte Variable einlesen.

Hier mal kurz das Programm:

class TemperatureTable {
public static void main (String args) {
final double LOW_TEMP = -10.0, HIGH_TEMP = 10.0;

double cent, fahr;

System.out.println("\t\tGrad C\t\t\tGrad F");
cent = LOW_TEMP;

while (cent <= HIGH_TEMP) {
fahr = (9.0/5.0) * cent + 32.0;
System.out.println("\t\t" + cent + "\t\t\t" + fahr);
cent = cent + 1.0;
}
}
}

Nun möchte ich das aber so realisieren, dass man die Skala (quasi) vorher manuell eingeben kann, die Variablen LOW_TEMP und HIGH_TEMP also vom Benutzer eingegeben werden können.

Wie könnte ich das machen?
Member: 1stcommander
1stcommander Jan 12, 2006 at 10:32:12 (UTC)
Goto Top
Hallo,

"args" enthält die Kommandozeilenargumente, also

args = 1. Argument
args[1] = 2. Argument
usw.

Kannst also (mit entsprechender Konvertierung) LOW_TEMP und HIGH_TEMP einfach über die Kommandozeile beim Aufruf mit angeben lassen.
Member: chefkochbln
chefkochbln Jan 12, 2006 at 10:37:38 (UTC)
Goto Top
Hmm....hab ich ehrlich gesagt, nicht genau verstanden *lach* - Aber wenn ich richtig liege, ist es das nicht, was ich möchte....
Die Ausgabe soll quasi so sein:

Geben Sie die Mindesttemperatur ein: <-------Usereingabe
Geben Sie die Höchsttemperatur ein: <---------Usereingabe

Grad Fahrenheit
.. ..
.. ..
.. ..
.. ..

Wisst ihr, was ich meine?
Member: rsa
rsa Jan 12, 2006 at 10:55:04 (UTC)
Goto Top
servas. bsp addiere 2 zahlen


import java.io.*;
class AddiereZwei
{
public static void main ( String args ) throws IOException
{
int zahlA, zahlB;

String zeile;
BufferedReader stdin = new BufferedReader(
new InputStreamReader( System.in ) );

System.out.println("Geben Sie die erste Zahl ein:");
zeile = stdin.readLine();
zahlA = Integer.parseInt( zeile );

System.out.println("Geben Sie die zweite Zahl ein:");
zeile = stdin.readLine();
zahlB = Integer.parseInt( zeile );

System.out.println( "Summe: " + (zahlA + zahlB) );
}
}

Hier ist der normale Ablauf:

C:\daten\JavaNotes>java AddiereZwei

Geben Sie die erste Zahl ein:
12
Geben Sie die zweite Zahl ein:
7
Summe: 19

C:\daten\JavaNotes>
Member: chefkochbln
chefkochbln Jan 12, 2006 at 11:29:54 (UTC)
Goto Top
Super, vielen vielen Dank - genau so etwas hab ich gesucht!
Member: 1stcommander
1stcommander Jan 13, 2006 at 09:20:15 (UTC)
Goto Top
Hallo nochmal,

da hab ich wohl auch nicht genau verstanden was du meinstest face-wink

Aber braucht man denn da den BufferedReader? Geht das nicht auch mit "System.in.read"?(Kann mich da dunkel an irgendsowas erinnern...)

MfG
Commander
Member: chefkochbln
chefkochbln Jan 13, 2006 at 09:25:07 (UTC)
Goto Top
Sorry....hmm, also WENN, dann hab ich das nicht richtig umgesetzt. System.in.read() - da bekomm ich ne Fehlermeldung
T_Test.java:8: cannot find symbol
symbol : method read(java.lang.String)
location: class java.io.InputStream
System.in.read(Zeile);
^

Insofern funktionierte das mit dem BufferedReader ganz okay ;)
Trotzdem danke nochmal!
Member: Ojon82
Ojon82 Jan 29, 2006 at 20:15:55 (UTC)
Goto Top
Hi,

Du kannst die Benutzereingabe auch ganz einfach mit der Scanner Klasse realisieren.
Dazu brauchst du allerdings die Java Version 1.5.

Das Funktioniert dann einfach mit dem Aufruf der Scanner klasse:

import java.util.Scanner;

public class.......

double LOW_TEMP = 0;
double HIGH_TEMP =0;

Scanner sc = new Scanner(System.in);

System.out.println("Geben sie die Mindestemperatur ein");
LOW_TEMP = sc.nextDouble();
System.out.println("Geben sie die Höchsttemperatur ein");
HIGH_TEMP = sc.nextDouble();


Thats it face-wink