Java-Datei mit unbestimmten Variablen

Jats

Aktives Mitglied
Hallo :)

Ich suche im Moment eine Möglichkeit, eine Javadatei so zu schreiben, dass am Ende bei der Auführung der Classdatei der User die Variablen selbst festlegen kann.
Es geht insgesamt darum, dass ich ein Programm schreibe, was die Kreisfläche ausrechnet, also muss ich ja auf jeden Fall pi festlegen.
An sich ist mir das Prinzip aber nicht ganz klar, wie ich eine unbestimmte Variable, die vom User gewählt werden kann, schreiben soll.
Ich denke mit prompt & arrays geht es nicht .. hab bis jetzt nur ein bisschen nebenbei gelesen, aber habe letztendlich keine Ahnung ^^
Ich hätte jetzt ganz spontan mal getippt, dass ich einfach sowas, wie das hier

Java:
public class Kreisfläche{
public static void  main(String [] args) 

{ 

Sysmtem.out.prinln("Hallo Benutzer !");
double zahl1 = value;

mache, aber ich denke nicht, dass es funktioniert :oops:
Hoffe, mir kann jemand helfen, das letzte Problem wurde ja auch erfolgreich gelöst :)
 

Der Müde Joe

Top Contributor
>lso muss ich ja auf jeden Fall pi festlegen.

Math (Java Platform SE 6)

>Okay, ich denke, ich muss System.in benutzen .

Scanner ist wohl etwas einfacher.

>Muss ich hinter das istgleich-Zeichen etwas schreiben ?

uhhmm. versteh ich net.

Was willst du machen?
zB
"Hallo Benutzer. Gib den Raduis ein:"
lesen---
if(zahl) weiter else "Eingabe wiederhohlen" --lesen
rechenen...ausgenben
 

ARadauer

Top Contributor
Java:
Sysmtem.out.prinln("Hallo Benutzer !");
geil! zwei Tippfehler in einem Befehl!

Muss ich hinter das istgleich-Zeichen etwas schreiben ?
vermutlich

Java:
Scanner sc = new Scanner(System.in);
      System.out.println("Hallo Benutzer !");
      double zahl1 = sc.nextDouble();
      System.out.println("Du hast "+zahl1+" eingegeben");
 

Jats

Aktives Mitglied
Ja, so soll das werden.
Der User soll seinen Kram eingeben und dann soll das Programm mir den Radius ausrechnen.
Pi habe ich jetzt wie folgt deklariert:

Java:
public static final double PI;

Richtig oder falsch ?

Und wenn ich das mit dem Scanner mache, soll ich dann sowas wie BufferedReader oder BufferedInputStream benutzen ?

Ich muss grad essen, da überleg ich nochmal .. ^^
 

Der Müde Joe

Top Contributor
als Bsp:
Java:
package ch.dmj.faq.mics;

import java.util.Scanner;


public class CmdReader {

    public static void main(String[] args) {
        // System.in is the command line
        // the scanner makes it easy to read
        Scanner scanner = new Scanner(System.in);
        // Welcome our user
        System.out.println("Hello. Please insert a number:");
        // runs forever: until: break
        while (true) {
            // waits until some input comes from the command line
            if (scanner.hasNext()) {
                // is the input as well a integer?
                if (scanner.hasNextInt()) {
                    // if so well done
                    int i = scanner.nextInt();
                    System.out.println("You typed an integer: " + i);
                    // well done: finish while
                    break;
                }
                // read the line
                String s = scanner.next();
                // print the input
                System.out.println("You did not type an integer: " + s);
                // well: do it again
                System.out.println("Try again: ");
                //start again while..
            }
        }
        // goodby
        System.out.println("Goodbye...");
    }
}

Und Pi ist scho deklariert:
Java:
System.out.println(Math.PI);
double d = Math.PI;
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
Warum soll das richtig sein? Das kompiliert ja nicht mal...

Wie Joe schon gezeigt hat

Java:
 System.out.println(Math.PI);

Und wenn ich das mit dem Scanner mache, soll ich dann sowas wie BufferedReader oder BufferedInputStream benutzen ?
nein, entweder oder. Man kann bequem von der Konsole mit dem Scanner lesen ODER mit BufferedReader.
Wie in dem ersten Link von mir schön gezeigt. Das hast du nicht verstanden deshalb hab ich dir ein Beispiel geschrieben.

Ich muss grad essen, da überleg ich nochmal
mahlzeit
 

Jats

Aktives Mitglied
Warum soll das richtig sein? Das kompiliert ja nicht mal...

Wie Joe schon gezeigt hat

Java:
 System.out.println(Math.PI);


nein, entweder oder. Man kann bequem von der Konsole mit dem Scanner lesen ODER mit BufferedReader.
Wie in dem ersten Link von mir schön gezeigt. Das hast du nicht verstanden deshalb hab ich dir ein Beispiel geschrieben.


mahlzeit

Danke, hat gut geschmeckt.
Also .
Ich habe mich mal so versucht, wie du es mir im Beispiel geschrieben hast.
Tut mir Leid, wenn ich keine Ahnung habe, oder viele Fehler mache, aber ich kenn mich halt nicht wirklich aus.

Java:
public class Test2 {                                      
public static void main(String [] args) 
public class Scanner {

{

Scanner sc = new scanner(System.in);
      System.out.println("Hallo Benutzer !");
      double zahl1 = sc.nextDouble();
      System.out.println("Du hast "+zahl1+" eingegeben");

}

}

}

Aber ich bekomme erstens einen Semikolon Fehler und zweitens habe ich keine Ahnung, ob und wie das richtig ist, weil ich doch nicht einfach dieses Scanner dahin schreiben kann :(
 
T

Tomate_Salat

Gast
Eine Klasse in der Main Methode geht net... (kein ; fehler)

Doch, nur eben keine [c]public[/c]:
Java:
public static void main(String[] args)
{
    class ABC
    {
            
    }
      
    ABC abc    = new ABC();

Aber wie sinnvoll eine Klasse ist, die nur innerhalb einer Methode verwendbar ist....

Also:
- Schmeis [c]public class Scanner[/c] raus
- wenn du diese zeile gelöscht hast, dann hat auch die [c]main[/c] wieder ein [c]{[/c]
- Du hast dann noch eine [c]}[/c] zuviel. Also zeile 16 z.B. löschen
- dann fügst du ganz oben [c]import java.util.Scanner;[/c] ein. Hast du ein package angegeben, dann kommt der import-befehl darunter

=> Jetzt nochmal ausprobieren

MFG

Tomate_Salat
 
T

Tomate_Salat

Gast
Hatte ich in erwägung gezogen, aber deins liest sich wirklich so: "Es geht garnicht, überhaupt nicht" und das fande ich dann doch zu extrem. Dann bitte schreiben: es gibt eine Möglichkeit, aber diese würde eher verwirren als Helfen ;-)
 

Jats

Aktives Mitglied
Ein bischen viel "class" in deinen Bsp.

Scanner ist eine Klasse. hier berschrieben:
Scanner (Java Platform SE 6)

Eine Klasse in der Main Methode geht net... (kein ; fehler)
Studier mal mein Bsp genau ;-)

Okay, ich habe wohl den Teil mit "import java.util.Scanner;" vergessen.
So .. wenn ich den jetzt einfüge, sieht das wie folgt aus.
Java:
import java.util.Scanner;

public class Test2 {                                      
public static void main(String [] args) 

{


Scanner sc = new Scanner(System.in);
System.out.println("Hallo Benutzer !");
double zahl1 = sc.nextDouble();
System.out.println("Du hast " + zahl1 + "eingegeben.");




}

}

Und ich hab das jetzt auch kompilieren können.
Wenn ich jetzt die Kreisfläche berechnen lassen will, muss ich ja eigentlich nurnoch alles so schreiben, dass nachher das Ergebnis auch als 2*pi*r definiert wird.
Nur jetzt habe ich zum Test eine Dezimalzahl eingegeben und erhalte einen Fehler :eek:
fehler5kt4.png
 
T

Tomate_Salat

Gast
grad umgekehert: er will ein [c],[/c] und keinen [c].[/c].

Console
Code:
Hallo Benutzer !
2,5 // Meine Eingabe
Du hast 2.5eingegeben.
 

ARadauer

Top Contributor
mhn ich seh das bild nicht da abload bei mir in der firma gesperrt ist, aber kann es sein, dass du die zahl mit , eingegeben hast?

Wenn ja: mhn String einlesen und mit eigenem DecimalFormater parsen... da findest du sicher 1000 Beispiele bei Google.
Oder einfach mit . eingeben ;-)
 

Der Müde Joe

Top Contributor
??
Code:
Hallo Benutzer !
2,5
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextDouble(Scanner.java:2387)
    at Calc.main(Calc.java:10)

vs:
Code:
Hallo Benutzer !
2.5
Du hast 2.5eingegeben.
 

Jats

Aktives Mitglied
mhn ich seh das bild nicht da abload bei mir in der firma gesperrt ist, aber kann es sein, dass du die zahl mit , eingegeben hast?

Wenn ja: mhn String einlesen und mit eigenem DecimalFormater parsen... da findest du sicher 1000 Beispiele bei Google.
Oder einfach mit . eingeben ;-)

Also ich hab es jetzt mehrmals mit Punkt eingegeben und es passiert immer das selbe.
Aber mit Komma funktioniert es .
Auf eine mir nicht erklärliche Art und Weise :bahnhof:
 
T

Tomate_Salat

Gast
In meiner Eclipse-Konsole nimmt ers nur mit Komma. Hängt vllt mit Länder/Zeichen-Code einstellungen zusammen :-/
 
T

Tomate_Salat

Gast
Naja eine Möglichkeit dass beides geht wäre:

Java:
double zahl1= Double.parseDouble(sc.next().replaceAll(",", "."));

problematisch wird das nur, wenn man sowas eingibt: [c]2.5,5.5[/c].
 

Jats

Aktives Mitglied
Achja, ich hab aus Versehen hier eine falsche Formel für die Kreisfläche geschrieben.
Sie lautet natürlich pi*r² :)
 
T

Tomate_Salat

Gast
Hmm hab wohl keine Source-files aufm rechner oder finde sie nit. Egal, ich weis mir zu helfen^^:
Java:
Field f	= Scanner.class.getDeclaredField("decimalSeparator");
f.setAccessible(true);
System.out.println(f.get(sc));

Ergibt bei mir:
[c]\,[/c]

Da haben ma den übeltäter :)
 

Jats

Aktives Mitglied
Ich wollte mich nur mal für eure Hilfe und Geduld bedanken.
Hier ist jetzt der Code für das geschrieben .. an alle, die dasselbe Problem haben sollten oder einfach nur so :)

Java:
import java.util.Scanner;

public class Test2 {                                      
public static void main(String [] args) 

{


Scanner sc = new Scanner(System.in);
System.out.println("Hallo Benutzer !");
System.out.println("Bitte gib den Radius ein und druecke Enter.");
double radius = sc.nextDouble();
System.out.println("Du hast " + radius + " als Radius eingegeben.");
double pi = Math.PI;
double ergebnis = pi*radius*radius;
System.out.println("Die Kreisflaeche betraegt " +ergebnis);
System.out.println("Vielen Dank fuer die Benutzung des Programms (:");

}

}
 

Der Müde Joe

Top Contributor
Da haben ma den übeltäter

Da gibts noch ein Locale gefummel im private Konstruktor
Java:
private String decimalSeparator = "\\.";
//...
private Scanner(Readable source, Pattern pattern) {
//...
useLocale(Locale.getDefault());
}
//..
public Scanner useLocale(Locale locale) {
//..
DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(locale);
//..
decimalSeparator = "\\" + dfs.getDecimalSeparator();
//..
}
 
T

Tomate_Salat

Gast
Wie ich vermutet hatte. Hängt mit der Ländereinstellung zusammen:

Java:
Locale[] locals	= { Locale.GERMAN, Locale.ENGLISH };

for(Locale local : locals)		
	System.out.println(local + "-Format: " + DecimalFormatSymbols.getInstance(local).getDecimalSeparator());

Ergibt:
Code:
de-Format: ,
en-Format: .
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
Kotelettklopfer Sqlite DB aus Java Datei ansprechen. Java Basics - Anfänger-Themen 147
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
J Java Datei als exe weitergeben Java Basics - Anfänger-Themen 3
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
M Java Mysql ausführbare datei Java Basics - Anfänger-Themen 7
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2
L Wie kann man fehlerfrei im Java Code auf die fxml Datei zugreifen? Java Basics - Anfänger-Themen 26
K Schlüsselworte Nach Java update findet mdb Datei nicht Java Basics - Anfänger-Themen 6
diqqerrr Java Datei als .exe ausführen Java Basics - Anfänger-Themen 8
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
A Java-Datei refaktorieren Java Basics - Anfänger-Themen 3
M In einer Datei schreiben - Java Java Basics - Anfänger-Themen 3
O Javac findet die .java datei nicht Java Basics - Anfänger-Themen 2
F PDF Datei in Java einbinden Java Basics - Anfänger-Themen 22
S .java Datei in java Datei ausführen Java Basics - Anfänger-Themen 9
J Java Datei lässt sich nicht kompilieren Java Basics - Anfänger-Themen 3
J Java - Abspielen einer wav Datei Java Basics - Anfänger-Themen 2
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
I Klassen Mehrere Java Klassen in einer .java Datei Java Basics - Anfänger-Themen 7
1 Im Java Projekt eine txt datei einbinden? Java Basics - Anfänger-Themen 8
J Eingabeaufforderung stürzt ab (beim Ausführen einer Java-Datei) Java Basics - Anfänger-Themen 3
D Lesen aus Datei (java.util.NoSuchElementException) Java Basics - Anfänger-Themen 22
G Input/Output CSV-Datei über Java-Programm erstellen, Zeichensalat Java Basics - Anfänger-Themen 3
Z Java txt Datei erstellen lassen Java Basics - Anfänger-Themen 6
0 Über CMD die JAVA Datei ausführen? möglich? Java Basics - Anfänger-Themen 8
M Java Datei soll sich selbst löschen Java Basics - Anfänger-Themen 8
M Datei starten mit Java Java Basics - Anfänger-Themen 3
B Datei in Java einlesen Java Basics - Anfänger-Themen 13
D java Datei ausführen? Java Basics - Anfänger-Themen 4
Fab1 alte Java Datei wird ausgeführt (trotz Änderung) Java Basics - Anfänger-Themen 4
M Java-Datei in Ordner Kopieren Java Basics - Anfänger-Themen 12
S .jar/java Datei ausführen Windows 7 64bit?! Java Basics - Anfänger-Themen 7
E Java Datei erstellen? :) Java Basics - Anfänger-Themen 3
U Java datei ausführen[Fehler] Java Basics - Anfänger-Themen 5
M Datei in java Öffnen Java Basics - Anfänger-Themen 9
P .class Datei direkt starten (optional Java Datei direkt starten) Java Basics - Anfänger-Themen 13
P Java Datei ohne Netbeans ausführen Java Basics - Anfänger-Themen 7
U neue Java-Datei öffnen Java Basics - Anfänger-Themen 10
S JTabbedPane jeder Tab in einer eigenen java Datei? Java Basics - Anfänger-Themen 3
A CMD findet die java.class Datei nicht Java Basics - Anfänger-Themen 46
Maxim6394 Java Datei ausführen Java Basics - Anfänger-Themen 9
D Input/Output Zeilen aus txt-datei in Java-Liste einfügen Java Basics - Anfänger-Themen 9
H java datei ausführen funktioniert nicht Java Basics - Anfänger-Themen 7
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
E PHP Datei mittels Java aufrufen? Java Basics - Anfänger-Themen 3
L Input/Output Datei in Java einlesen Java Basics - Anfänger-Themen 9
K Klasse in eingener *.java-Datei Java Basics - Anfänger-Themen 5
A Wie mit Java eine .vbs Datei starten lassen? Java Basics - Anfänger-Themen 4
D Java Applet in einer .jar datei Java Basics - Anfänger-Themen 2
U Java .txt datei öffnen Java Basics - Anfänger-Themen 3
achillesat aus .java in ascii datei Java Basics - Anfänger-Themen 12
H java programm per batch datei öffnen Java Basics - Anfänger-Themen 4
K OOP Macro (.vba-Datei) aus Java Java Basics - Anfänger-Themen 2
C Datei kopieren - Erweiterung java.io.File Java Basics - Anfänger-Themen 2
A Java Datei in Applet umwandeln Java Basics - Anfänger-Themen 4
C *.java Datei nach Doppelklick mit VM ausführen Java Basics - Anfänger-Themen 29
3 Eine HTML Datei in eine Java Datei umschreiben Java Basics - Anfänger-Themen 23
W [Java Archive (JAR) Datei erstellen] Lässt sich nicht ausfürhren Java Basics - Anfänger-Themen 7
M java neue datei erstellen Java Basics - Anfänger-Themen 6
P mit java text-datei auslesen und weiter bearbeiten Java Basics - Anfänger-Themen 3
Developer_X Datei downloaden mit Java (.zip) Java Basics - Anfänger-Themen 19
M lokale exe-Datei über Java-Applet starten Java Basics - Anfänger-Themen 4
L Datei aus Java in anderem Programm öffnen Java Basics - Anfänger-Themen 23
N Java Programm soll Datei in eigene jar schreiben Java Basics - Anfänger-Themen 13
X Java txt datei auslesen Java Basics - Anfänger-Themen 10
T Java Webstart soll eine Datei speichern Java Basics - Anfänger-Themen 2
Knizz Java-Datei über cmd öffnen Java Basics - Anfänger-Themen 29
M Datei mit Java für Programm öffnen Java Basics - Anfänger-Themen 10
B Java Datei unter Solaris kompilieren Java Basics - Anfänger-Themen 2
Developer_X Java File listet den Ordner, in dem sich die Datei befindet Java Basics - Anfänger-Themen 7
Developer_X HTML Datei nicht von Java Lesbar Java Basics - Anfänger-Themen 8
H Große Projekte mit Java - Ausführbare Datei Java Basics - Anfänger-Themen 2
M Delphi-Record mit Java aus Datei lesen Java Basics - Anfänger-Themen 11
E Habe java. Datei wie ausführen ? Java Basics - Anfänger-Themen 9
2 Mit Java in eine WORD-Datei schreiben Java Basics - Anfänger-Themen 18
M .java als ausführende Datei Java Basics - Anfänger-Themen 2
Q java.util.loggging neue datei erstellen Java Basics - Anfänger-Themen 3
G *.java Datei mit Editor starten und testen Java Basics - Anfänger-Themen 6
K Java Application mit Batch-datei starten Java Basics - Anfänger-Themen 9
O Text von Homepage via Java auslesen und in Text Datei speich Java Basics - Anfänger-Themen 1
G Datei mit Java anlegen Java Basics - Anfänger-Themen 9
J Ein Java-Programm in eine *.exe Datei 'packen' Java Basics - Anfänger-Themen 20
S Datei mit Java-Applikation an Web-Formular schicken Java Basics - Anfänger-Themen 9
G Datei in Java umbenennen Java Basics - Anfänger-Themen 4
K Wieviele Befehle pro .java Datei Java Basics - Anfänger-Themen 4
K aus Java Programme Jar.datei erstellen (eclipse) Java Basics - Anfänger-Themen 15
H csv datei mit java auslesen und in konsole wiedergeben Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben