Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
hallo ich bin blutiger anfänger wenn es ums programmieren geht also habt bitte etwas nachsicht.
ich möchte/ wollte zur übung ein Übersetzungsprogramm schreiben welches den eingegebenen Namen in arabische Schriftzeichen übersetzt.
also dass er die Input eingabe k in einen unicode umwandelt und dann auch ausgibt.
mit anderen worten Buchstabe für Buchstabe übersetzen und nicht Wort für Wort.
und dann besteht auch noch das problem dass es den ganzen namen übersetzen soll.
Java:
import javax.swing.*;
public class UebungEigenesProgramm
{
public static void main(String[] args)
{
//variablen deklarieren und initialisieren
String e = "\u0627";
String b = "\u0628";
String t = "\u0629";
String s = "\u062B";
String c = "\u062C";
String h = "\u062D";
String ch = "\u062E";
String d = "\u062F";
String z = "\u0630";
String r = "\u0631";
String ze = "\u0632";
String si = "\u0633";
String sch = "\u0634";
String ß = "\u0635";
String da = "\u0636";
String ti = "\u0637";
String zi = "\u0638";
String a = "\u0639";
String ga = "\u063A";
String f = "\u0641";
String g = "\u0642";
String k = "\u0643";
String l = "\u0644";
String m = "\u0645";
String n = "\u0646";
String v = "\u0648";
String w = "\u0648";
String he = "\u0647";
String y = "\u0649";
String j = "\u0649";
String name = JOptionPane.showInputDialog("Bitte Geben Sie hier Ihren Namen ein:");
JOptionPane.showMessageDialog(null, "Dein Arabischer Name lautet" + name);
}
}
als erstes gucken wir da doch mal was die methoden von String-Objekten machen und was sie benötigen: String (Java Platform SE 7 )
Hier sehen wir als erstes
replace(char oldChar, char newChar)
Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.
replace liefert also einen neuen String in dem der angegebene charakter (also das zeichen) mit dem anderen angegebenen ersetzt wird. Will man also mehrer zeichen ersetzen müsste man es zb so schreiben:
nun willst du vllt aber auch nicht alle buchstaben als einzelne variable haben, das sieht etwas zugemüllt aus. besser wäre hier wohl zb. zwei String-Arrays. Das sähe dann so aus:
Java:
String value; // das ist der ausgangsstring
String[] keys = {"h", "ch", "d", "z"};//... usw.
String[] replacements = {"\u062D", "\u062E", "\u062F", "\u0630"};
//hierbei ist wichtig das in dem unteren Array genauso viele werte stehen müsssen wie im oberen
value = value.toLowerCase();
for(int i = 0; i < keys.length; ++i){
value = value.replace(keys[i], replacements[i]);
}
Hierbei würden in beiden arrays jeweils die zugehörigen werte über die position im Array verknüpft werden, dh der buchstabe keys[3], also hier "d" würde zum zeichen replacements[3] also "\u062F" werden, und das für jedes zeichen.
das toLowerCase() bewirkt das auch alles kleingeschrieben wird, denn ein "D" würde schon nichtmehr ersetzt werden da für java ein "d" etwas völlig anderes ist als ein "D"