Java

Diskutiere Java im Security-Zone - Sicherheitslücken, Virenschutz Forum im Bereich Hardware & Software Forum; Mal kurz ne Frage zu einen Programm. Hab mir einen eigenen Codierer geschrieben, und wollte in jetzt in mehrern Sprachen machen. Aber ist...
  • Java Beitrag #1
L

Legende

Bekanntes Mitglied
Dabei seit
05.10.2008
Beiträge
55
Reaktionspunkte
0
Ort
Germany
Mal kurz ne Frage zu einen Programm. Hab mir einen eigenen Codierer geschrieben, und wollte in jetzt in mehrern Sprachen machen. Aber ist irgendwie ein Denkfehler drin. Hab mal das Problem rausgeschrieben was ist hier falsch ? Er de oberen Teil immer aus, läßt den Benutzer die Sprache eingeben, aber danach passiert einfach gar nichts mehr!!!

public class CTest {

public static void main(String[] args) {

Console con = new Console();
System.out.println("\n" + "Welcome to the Codierer 2.0" + "\n");

String sprache = con.readString("Please vote your language: de, en : ");

while (true) {

if (sprache == "de") {
.....
}

if (sprache == "en") {
.....
}

else {
System.out.println("Falsche Eingabe");
return;
}

}
}
}
 
Zuletzt bearbeitet:
  • Java Beitrag #2
L

Legende

Bekanntes Mitglied
Dabei seit
05.10.2008
Beiträge
55
Reaktionspunkte
0
Ort
Germany
hier falls es hilft ganze programm:

public class Codierer {

public static char begrüßung(String sprache) {
Console con = new Console();
if (sprache == "en") {
System.out.println("=========================================");
System.out.println("You can do following things:" + "\n");
System.out.println("* C = text codieren" + "\n"
+ "* D = text decodieren" + "\n" + "* E = exit" + "\n");
System.out.println("=========================================");
char frage = con.readChar("What want you to do ? ");
return frage;
}
if (sprache == "de") {
System.out.println("=========================================");
System.out.println("Sie haben folgende Möglichkeiten:" + "\n");
System.out.println("* C = Text codieren" + "\n"
+ "* D = Text decodieren" + "\n" + "* B = beenden" + "\n");
System.out.println("=========================================");
char frage = con.readChar("Was möchten Sie tun? ");
return frage;
}
return 0;
}

public static void fragüberprüfung(char frage, String sprache) {
switch (frage) {

case 'C' | 'c':
codierer();
break;
case 'D' | 'd':
decodierer();
break;
default:
if (sprache == "en")
System.out.println("Wrong input");
if (sprache == "de")
System.out.println("Falsche Eingabe");
}
}

public static void codierer() {
Console con = new Console();
int codierStufe = con.readInt("Bitte geben Sie eine Codierstufe ein: ");
String text = con
.readString("Bitte geben Sie jetzt den Geheimtext ein: ");
char buchstaben[] = text.toCharArray();
System.out.println("\n" + "Ihr codierter Text lautet:" + "\n" + "\n");
for (int i = 0; i < text.length(); i++) {
buchstaben = (char) (buchstaben + codierStufe);
System.out.print(buchstaben);
}
for (int i = 1; i <= 3; i++)
System.out.println("\n");
}

public static void decodierer() {
Console con = new Console();
int codierStufe = con.readInt("Bitte geben Sie die Codierstufe ein: ");
String text = con
.readString("Bitte geben Sie den codierten Text ein: ");
char buchstaben[] = text.toCharArray();
System.out.println("\n" + "Der geheime Text lautet:" + "\n" + "\n");
for (int i = 0; i < text.length(); i++) {
buchstaben = (char) (buchstaben - codierStufe);
System.out.print(buchstaben);
}
for (int i = 1; i <= 3; i++)
System.out.println("\n");
}

public static void main(String[] args) {

Console con = new Console();
System.out.println("\n" + "Welcome to the Codierer 2.0" + "\n");
String sprache = con.readString("Please vote your language: de, en : ");

while (true) {

char frage = begrüßung(sprache);

if (frage == 'e' || frage == 'E' || frage == 'b' || frage == 'B') {
return;
}
fragüberprüfung(frage, sprache);
}
}
}
 
  • Java Beitrag #3
L

Legende

Bekanntes Mitglied
Dabei seit
05.10.2008
Beiträge
55
Reaktionspunkte
0
Ort
Germany
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.Date;

/**
* Die Klasse Console dient zur einfachen Ein- und
* Ausgabe auf der Konsole.
*
*/
public class Console {
/**
* Der Konsolen-Eingabestrom
*/
private final InputStreamReader input = new InputStreamReader(System.in);
/**
* Das Konsolen-Leseobjekt
*/
private final BufferedReader reader = new BufferedReader(input);

/**
* Parameterloser Konstruktor.
* Ein Console Object wird angelegt.
*/
public Console()
{

}

/**
* Einlesen einer Textzeile.
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Textzeile.
*/
public String readString(String ask)
{
String text = "";

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
return text;
}
catch (IOException e) {
handleException(e);
}
}
}

/**
* Einlesen einer Zahl im byte Format.
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public byte readByte(String ask)
{
byte zeichen = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zeichen = Byte.parseByte(text);
return zeichen; // Erfolg!
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen eines Zeichen.
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return das vom Benutzer eingegebene Zeichen.
*/
public char readChar(String ask)
{
char zeichen = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zeichen = text.charAt(0);
return zeichen; // Erfolg!
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen einer 16-Bit Zahl (short).
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public short readShort(String ask)
{
short zahl = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = Short.parseShort(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen einer 32-Bit Zahl (int).
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public int readInt(String ask)
{
int zahl = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = Integer.parseInt(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen einer 64-Bit Zahl (long).
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public long readLong(String ask)
{
long zahl = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = Long.parseLong(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen einer Fließkommazahl Zahl (float).
* <b>Achtung:</b> Das Trennzeichen ist der Punkt ("5.3").
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public float readFloat(String ask)
{
float zahl = 0.0f;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = Float.parseFloat(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}

}

/**
* Einlesen einer Fließkommazahl Zahl (double).
* <b>Achtung:</b> Das Trennzeichen ist der Punkt ("5.3").
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public double readDouble(String ask)
{
double zahl = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = Double.parseDouble(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Einlesen einer Fließkommazahl Zahl (double).
* <b>Achtung:</b> Das Trennzeichen hängt von den Systemeinstellungen ab.
* Bei einer I/O Exception erfolgt eine erneute Eingabeaufforderung.
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Zahl.
*/
public double readDoubleLoc(String ask)
{
double zahl = 0;
String text;

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
zahl = String2Double(text);
return zahl;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Ausgabe einer Fließkommazahl Zahl (double).
* <b>Achtung:</b> Das Trennzeichen hängt von den Systemeinstellungen ab.
* @param <i>form.</i> Das gewünschte Zahlenformat z.B. "#.###" entspricht
* 3 Nachkommastellen.
* <i>z.</i> Die auszugebende Zahl.
*/
public void printDouble(String form, double z)
{
System.out.print(Double2String(form, z));
}

/**
* Einlesen einer Uhrzeit (Date).
* @param ask Eingabeaufforderung an den Benutzer.
* @return die vom Benutzer eingegebene Uhrzeit.
*/
public Date readTime(String ask)
{
Date time = null;
String text;
DateFormat df = DateFormat.getTimeInstance();

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
time = df.parse(text);
return time;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Ausgeben einer Uhrzeit (Date).
*/
public void printTime(Date time)
{
String text;
DateFormat df = DateFormat.getTimeInstance();

text = df.format(time);
System.out.print(text);
}

/**
* Einlesen eines Datum (Date).
* @param ask Eingabeaufforderung an den Benutzer.
* @return das vom Benutzer eingegebene Datum.
*
*/
public Date readDate(String ask)
{
Date date = null;
String text;
DateFormat df = DateFormat.getDateInstance();

while (true) {
System.out.print(ask);
try {
text = reader.readLine();
date = df.parse(text);
return date;
}
catch (Exception e) {
handleException(e);
}
}
}

/**
* Ausgeben einer Uhrzeit (Date).
*
*/
public void printDate(Date time)
{
String text;
DateFormat df = DateFormat.getDateInstance();

text = df.format(time);
System.out.print(text);
}

/**
* Bearbeiten einer Exception. Message ausgeben. StackTrace anzeigen.
* @param e die zu verarbeitende Exception.
*
*/
static private void handleException(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
System.out.println();
}

/**
* Umwandeln eines Text in einen double Wert (localisiert)
* @param text - der Eingabetext
* @exception ParseException
* @return der double Wert
*
*/
static public double String2Double(String text) throws ParseException
{
double zahl = 0.0;
DecimalFormat df = new DecimalFormat();

text = text.toUpperCase();
zahl = df.parse(text).doubleValue();
return zahl;
}

/**
* Umwandeln eines double Wert in einen String (localisiert)
* @param form - der Eingabetext
* @param zahl - die Zahl
* @return der String
*
*/
static public String Double2String(String form, double zahl)
{
String text;
DecimalFormat df = new DecimalFormat(form);

text = df.format(zahl);

return text;
}


/**
* Der String in wird von links mit Leerzeichen aufgefüllt bis
* er die gewünschte Länge (anz) hat. z.B. in = "3" und anz = 4
* ergibt " 3".
*
* @param in - der Eingabestring
* @param anz - gewünscht Länge des String
* @return der aufgefüllte String
*/
static public String padStringLeft(String in, int anz)
{
String out = new String();

for (int i=0; i<anz-in.length();i++) {
out += " ";
}
out += in;

return out;
}


/**
* Der String in wird von rechts mit Leerzeichen aufgefüllt bis
* er die gewünschte Länge (anz) hat. z.B. in = "3" und anz = 4
* ergibt "3 ".
*
* @param in - der Eingabestring
* @param anz - gewünscht Länge des String
* @return der aufgefüllte String
*/
static public String padStringRight(String in, int anz)
{
String out = new String();

out += in;
for (int i=0; i<anz-in.length();i++) {
out += " ";
}

return out;
}

}; // End-of-Class-->Console
 
Zuletzt bearbeitet:
  • Java Beitrag #4
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
schonmal was von Einrücken oder dem [noparse]
Code:
[/noparse] Tag gehört?

das hilft alles der lesbarkeit und somit kann man dir dann schneller helfen
 
  • Java Beitrag #5
L

Legende

Bekanntes Mitglied
Dabei seit
05.10.2008
Beiträge
55
Reaktionspunkte
0
Ort
Germany
die console hab ich nur hinzugefügt, falls es einer bei sich ausprobieren möchte, da ist auf keinen fall ein fehler drin.

und wegen der übersicht, du must dir eigentlich auch nur den ersten post anschauen, da ist der fehler drin!!!
 
Zuletzt bearbeitet:
  • Java Beitrag #6
L

Legende

Bekanntes Mitglied
Dabei seit
05.10.2008
Beiträge
55
Reaktionspunkte
0
Ort
Germany
Ist schon okay habs jetzt anders gemacht :goil:

Code:
public static void main(String[] args) {

		Console con = new Console();
		System.out.println("\n" + "Welcome to the Codierer 2.0" + "\n");
		int sprache = con
				.readInt("Please vote your language: de = 1, en = 2 : ");
		System.out.println();

		while (true) {

			char frage = begrüßung(sprache);

			if (frage == 'e' || frage == 'E' || frage == 'b' || frage == 'B') {
				return;
			}
			fragüberprüfung(frage, sprache);
		}
	}

übergebe jetzt ein int wert und kein String wert mehr
 
Thema:

Java

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben