Sonderzeichen in JAVA

paul1508

Captain
Registriert
Nov. 2005
Beiträge
3.811
Ich schreib gerade ein kleines Javaprogramm (nur ein paar Schreibübungen) und komm nicht drauf wie ich die Sonderzeichen € und % ausgeben kann!?

Hier das Kleine Beispiel:

Code:
Out.println(String.format("Kosten fuer " + LKW4 + " grosse LKWs	: %5d,%02d", Kosten4/100,Kosten4%100));

Sieht in der Ausgabe so aus:

Code:
Kosten fuer 30 grosse LKWs      :  2088,00

Ich hätte gerne davor ein € Zeichen und bei einem anderen Beispiel ein % Zeichen...
Das Problem:
Statt € bekomme ich Ç
Wenn ich irgendwie versuche % auszugeben, denkt er wahrscheinlich ich will eine Formatierung mit der Schrift oder so machen :freak:
 
du musst %% schreiben wenn du ein % willst. das mit dem euro-zeichen liegt vermutlich daran, dass du unter windows entwickelst. diese consolen dort tun sich mit bestimmten zeichensätzen schwer.
 
Java verwendet Unicode. Du musst Deine Konsole(ncodierung) auf Unicode umstellen. Dann klappts auch.
 
Danke IceMatrix!

@Marv82: wie schalte ich auf Unicode um?
 
Ich denke nicht, dass das einfach geht. Unter C++ würde man wstring (also wchars verwenden) und die entsprechenden streams, vll. hilft dir das weiter, bei Java kenne ich mich leider nicht aus.

Gruß,

badday
 
Lass es lieber sein, und verwende EUR statt €. Du weißt ja nie in welcher Umgebung das Programm mal ausgeführt wird.
 
@DjNDB Okay du hast Recht. Kann mir vielleicht einer sagen, ob bzw. wie Notepad++ eine .java gleich kompeilieren kann und die .class dann starten kann?
Oder sollte ich sowieso früher oder später auf Eclipse o.Ä umsteigen?
 
Ich benutze nur Linux. Da ist schon seit einiger Zeit standardmäßig (fast) alles in Unicode. Wie das unter Windows geht, da musst Du hier im Forum die Spezialisten fragen.

Also wenn es nur bei den kleinen "Atemübungen" bleibt, würde ich es bei der Konsole belassen. Solltest Du aber planen, Deine Programmierkenntnisse systematisch zu erweitern, empfehle ich Dir den baldigen Umstieg auf eine IDE wie das von Dir angesprochene Eclipse. Denn nicht nur das eigentliche Programmieren will gelernt sein, sondern auch der Umgang mit den eigenen Klassen und der Klassenbibliothek. Wenn Du mit einer ausgewachsenen IDE "lernst", hat das zwar den Anschein mit Kanonen auf Spatzen zu schießen, aber Du lernst nebenbei auch den Umgang mit der IDE ansich.
 
Zuletzt bearbeitet:
paul1508 schrieb:
@DjNDB Okay du hast Recht. Kann mir vielleicht einer sagen, ob bzw. wie Notepad++ eine .java gleich kompeilieren kann und die .class dann starten kann?
Oder sollte ich sowieso früher oder später auf Eclipse o.Ä umsteigen?

Texteditor, javac und java zu verwenden würde ich nur für den Anfang empfehlen um zu verstehen was passiert.

Danach ist es deutlich komfortabler mit einer Entwicklungsumgebung. Lad dir doch einfach mal eclipse runter und arbeite dich in die Grundlagen ein. Dafür gibt es Eclipse tutorials, Videos, oder die eclipse hilfe.
 
Ja es geht, ihr habt mir sehr geholfen mit dem %%, danke euch!
 
Hinweis zu € $ und so weiter :
Ich würde da "java.util.Currency" empfehlen, vor allem weil man soclhe Sachen wie "getDefaultFractionDigits" geschenkt bekommt.
 
  • Gefällt mir
Reaktionen: NikkyD und Tr3x
Gibt es mittlerweile eine schicke einfache Variante des Euro Zeichens in Java ?
 
einfachpeer schrieb:
Variante des Euro Zeichens in Java
Ja. Wenn es die Konsole kann:

Java:
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;

public class Euro {
    private static final NumberFormat EURO_FORMAT_GER = NumberFormat.getCurrencyInstance(Locale.GERMAN);

    public static String formatValue(final double price) {
        return EURO_FORMAT_GER.format(price);
    }

    public static void main(final String[] args) {
        System.out.println(formatValue(1.111));
    }
}

Wenn es die Konsole nicht kann, dann würde ich einfach schreiben:

Java:
    public static String formatValue2(final double price) {
        return new DecimalFormat("0.00 Eur", DecimalFormatSymbols.getInstance(Locale.GERMAN)).format(price);
    }

(also einfach "Eur" bzw. "Euro")
 
Zurück
Oben