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-ID: 23386

Url: https://administrator.de/forum/java-variablen-einlesen-23386.html

Ausgedruckt am: 23.12.2024 um 08:12 Uhr

rsa
rsa 12.01.2006 um 10:48:39 Uhr
Goto Top
hi,

erstmal was meinst mit variablen?

meinst daten aus einer datei lesen?
chefkochbln
chefkochbln 12.01.2006 um 10:52:56 Uhr
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?
1stcommander
1stcommander 12.01.2006 um 11:32:12 Uhr
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.
chefkochbln
chefkochbln 12.01.2006 um 11:37:38 Uhr
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?
rsa
rsa 12.01.2006 um 11:55:04 Uhr
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>
chefkochbln
chefkochbln 12.01.2006 um 12:29:54 Uhr
Goto Top
Super, vielen vielen Dank - genau so etwas hab ich gesucht!
1stcommander
1stcommander 13.01.2006 um 10:20:15 Uhr
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
chefkochbln
chefkochbln 13.01.2006 um 10:25:07 Uhr
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!
Ojon82
Ojon82 29.01.2006 um 21:15:55 Uhr
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