Umwandlung

Status
Nicht offen für weitere Antworten.
R

Reap

Gast
Wie wandle ich ein char dass eine Zahl als char hat in eine wirkliche Zahl um
 

McSnoop

Bekanntes Mitglied
Code:
int zielvariable = Integer.parseInt(Quellevariable);

zumindestens ist das so bei Strings, aber Char sind ja auch Strings, halt nur mit einer Länge von 1. =)
 

Chucky

Aktives Mitglied
ich denke er meint wie er einen char
der eine zahl als unicode zeichen enthält
als Integer wert umformen kann oder geht das auch so?
 

Dreezard

Bekanntes Mitglied
Also
Unicode Zeichen in int speichern:
Code:
int unicode = (int) zeichen;

und Wenn du ne variable
char zeichen = '6'
hast und die 6 raus haben willst, mach's wie McSnoop es beschrieben hat
 

Dreezard

Bekanntes Mitglied
oh. sry. Hab das Porting von McSnoop zu schnell überflogen :oops:
Also da besteht schon ein elementarer unterschied zwischen einer Klasse und einem primitiven Datentyp.

Um ne Zahl aus nem Char rauszuholen schreibt man also eher folgendes:
Code:
int zielvariable = Integer.parseInt(Character.toString(Quellevariable));
 

Dreezard

Bekanntes Mitglied
Warum soll das nicht funktionieren? Ich nutze die toString() Methode der Character Klasse. Wo ist das problem?
 

Dreezard

Bekanntes Mitglied
Aber irgendwie gefällt mir das auch nich ^^.
Ich hatte doch ganz eine Methode von Character vergessen:
Code:
int zielvariable = Character.getNumericValue(Quellevariable);
So ist's sicher Rescourcen-schonender

EDIT: Probier's doch aus. Es fuktioniert! @mic_checker
 

Dreezard

Bekanntes Mitglied
Und was is an der Syntax falsch? Siehe http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Character.html#toString()
 

mic_checker

Top Contributor
arg,kanns sein das das einer der sachen ist die sich beim Tiger geändert haben? Benutze selbst noch nicht den Tiger....ist wahrscheinlich so oder?

sollte dem so sein: scheiss tiger ;)
 

mic_checker

Top Contributor
Ne, hast ja recht, nix gegen Tiger !

Als ich die Methode gesehen hab - hab ich mir schon gedacht - mom: das gehört best. zu Java 5 - so wissen die Java 1.4 Nutzer wenigstens das sie nicht zu blöd sind das Ding auszuführen,sondern das es bei Ihnen so nicht geht...;)
 

mic_checker

Top Contributor
Ich glaube es gab zuvor auch ein Missverständnis bzgl. Quellevariable. toString(char ch) gab es natürlich auch schon in 1.4...Hab gedacht wir würden von Character's reden...

aber hat sich ja erledigt.
 

major666

Mitglied
Hallo,

die folgende Funktion zum Umwandeln von chars in Unicode-Int habe ich in der API schon gefunden:

Code:
int zielvariable = Character.getNumericValue(Quellevariable);

Dazu müsste es doch sicher auch das Inverse geben, oder? Also int (in Unicode) --> Character
Leider konnte ich es bis jetzt in der API noch nicht finden.
Kann mir jemand weiterhelfen?

Gruß,
M.
 

Dreezard

Bekanntes Mitglied
Also wenn du einen int hast (z.B. 102) und möchtest ein char der den dazugehörigen unicodecharacter represeniert (in diesem Falle 'f') brauchst du einfach nur zu casten:
Code:
int i = 102;
char c = (char) i;   //c ist 'f'
 

major666

Mitglied
Hallo,

danke für den Tip mit dem einfachen (char) -Cast.
Leider ist das nicht das Inverse zu dieser Funktion Character.getNumericValue (siehe unten Progrämmchen und Ausgabe).
Und ich wollte das Ganze auch "sauber" machen ohne zu casten, aber mit Character.getNumericValue geht das wohl gar nicht, da einige Zeichen auf -1 abgebildet werden (also nicht injektiv :) ).
Werd wohl jetzt doch einfach char-> int und int->char casten für die jeweilige Umwandlung. Das geht für die allermeisten Zeichen (Ascii), aber bei ein paar Sonderzeichen haperts (z.B. Euro-Symbol). Oder habt ihr vielleicht noch nen Tip?

Grüße,
M.

Code:
char c;
	for(int i=50;i<100;i++){

	    c = (char) i;
	    System.out.println(i + ": " + c +
			       " numVal: " + Character.getNumericValue(c));
	}
60: < numVal: -1
61: = numVal: -1
62: > numVal: -1
63: ? numVal: -1
64: @ numVal: -1
65: A numVal: 10
66: B numVal: 11
67: C numVal: 12
68: D numVal: 13
69: E numVal: 14
70: F numVal: 15
71: G numVal: 16
72: H numVal: 17
73: I numVal: 18
74: J numVal: 19
75: K numVal: 20
76: L numVal: 21
77: M numVal: 22
78: N numVal: 23
79: O numVal: 24
80: P numVal: 25
 

thE_29

Top Contributor
Ich seh den Thread erst jetzt, aber euch fehlt einfach die nötige Cast Erfahrung :D

du kannst entweder:

Code:
    for(int x = 0; x != 256; x++)
      System.out.print(x + " = " + (char)x);
    
    //oder
    for(char c = 0; c != 256; c++)
      System.out.print((int)c + " = " + c);
 
M

mr1st

Gast
So ginge es doch auch:
Code:
char[] arr = { deinChar };
int i = Integer.parseInt(new String(arr));

oder noch einfacher:
Code:
int i = Integer.parseInt(Character.toString(deinChar));

MfG
 

thE_29

Top Contributor
Wieso nehmt ihr solche Funktionen wenns sowieso casten geht??


Ihr verwöhnten Java Kinder :D


In C gibts solche Funktionen, aber in C kann man so ziemlich alles auf alles casten ohne das ne classcastexcpetion kommt...


Also, jedem das seine, aber von character auf int mit einer Funktion umwandeln ist halt schon heftig ;>
 
M

mr1st

Gast
@the_29
Ist es dann auch auf jeder java-fähigen Plattform so, dass zB #48 das Zeichen "0" ist? Ich verwendete die Methode deshalb, weil ich mir da nicht 100% sicher bin.
 

thE_29

Top Contributor
Hrhr :)

Das ist ANSI bzw ASCII das 48 0 ist ;)

Sonst würds nur noch Chaos geben!

Bis 127 sind alle Zeichen auf der Welt nach dem ANSI Standard gleich (also net irgendwelche Kryptischen Schriften).

zB ist
13 = Enter
27 = Escape
8 = Backspace
usw, das sind halt die Steuerzeichen
 
M

mr1st

Gast
Es war ja nur gefragt, wie man eine Zahl, die als char vorliegt, in int umwandelt. D.h. das mit dem Euro-Symbol ist eine völlig andere Problemstellung und somit anders zu lösen.

MfG
 

Dreezard

Bekanntes Mitglied
Also ich weiß nicht ganz wo bei euch das Problem liegt.

Wenn ich einen char 'A' in einen int caste bekomme ich 65 und bei einem '@' Zeichen 64.
 

Stefan1200

Top Contributor
Hat von euch noch nie einer gesehen, wie der ACSII Code aufgebaut ist?

Unter Windows gibt es ein Tool, Zeichentabelle heißt das glaube ich.

Beim Java SDK ist sogar eine Demo dabei, darin kann man das glaube ich auch sehen.

Beachtet aber, das bei Zeichen und Steuerzeichen jenseits der 127 kein Betriebsystem übergreifender Standard existiert (unter Windows ist das anders, als beim Mac oder Linux.

Java intern wird aber ja Unicode verwendet.
Und bei Input und Output Streams läßt sich ja der Zeichentabellen Standard einstellen. (So verwende ich inzwischen für Netzwerk Verkehr UTF-8)
 

Bleiglanz

Gesperrter Benutzer
das ganze ist schon ein bisschen komplizierter...
Beachtet aber, das bei Zeichen und Steuerzeichen jenseits der 127 kein Betriebsystem übergreifender Standard existiert (unter Windows ist das anders, als beim Mac oder Linux.
was glaubst du wohl, was Unicode ist?

leider braucht man da "in der Vollversion" 4 Bytes für jedes "Zeichen", weshalb es also jetzt wiederum die Möglichkeit gibt, das ganze zu "encoden"

nicht nur deshalb ist UTF-8 oder UTF-16 etwas ganz anderes als ASCII...
 

major666

Mitglied
Dreezard hat gesagt.:
Also ich weiß nicht ganz wo bei euch das Problem liegt.

Wenn ich einen char 'A' in einen int caste bekomme ich 65 und bei einem '@' Zeichen 64.

Ja, das @ ist im ASCII schon dabei, aber eben das Euro-Symbol z.B. nicht.
Was mache ich also, um von Unicode-Zeichen auf eine Zahl und wieder zurück zu kommen?
Kann jemand helfen? :roll:


Stefan1200 hat gesagt.:
Beachtet aber, das bei Zeichen und Steuerzeichen jenseits der 127 kein Betriebsystem übergreifender Standard existiert (unter Windows ist das anders, als beim Mac oder Linux.
Bleiglanz hat gesagt.:
was glaubst du wohl, was Unicode ist?

Wer wird denn hier streiten? :meld:
 

Dreezard

Bekanntes Mitglied
Oh man. Eigene Dummheit. Ich hab n bischen zu dumm gelesen. Also das Euro-Symbol ist bei mir ein int 8364. ???:L
Aber das hat wohl was mit Linux zu tun oder?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
M Operatoren Umwandlung div. Operatoren Java Basics - Anfänger-Themen 7
B Date - Umwandlung OffsetDateTime Java Basics - Anfänger-Themen 11
J Probleme bei der Umwandlung einer Farbe von Hex zu RGB Java Basics - Anfänger-Themen 8
J Umwandlung for-Schleife Java Basics - Anfänger-Themen 10
R Fehler bei ASCII Char zu Int Umwandlung Java Basics - Anfänger-Themen 2
M Umwandlung von StringArray in String Java Basics - Anfänger-Themen 2
P Umwandlung in Javacode Java Basics - Anfänger-Themen 10
M Umwandlung String zu int Java Basics - Anfänger-Themen 2
M Umwandlung von Array zu ArrayList Java Basics - Anfänger-Themen 7
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
A Char Bytes Umwandlung und Darstellung Java Basics - Anfänger-Themen 3
K Datentypen Umwandlung einer Textfeldeingabe in einen binären Wert Java Basics - Anfänger-Themen 2
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
L Umwandlung von String to Int funktioniert nciht Java Basics - Anfänger-Themen 3
V Methoden Umwandlung in generische Methode Java Basics - Anfänger-Themen 8
J Datentypen Umwandlung von Arraylist in ein StringArray Java Basics - Anfänger-Themen 10
J Datentypen Umwandlung von Kommazahl in Punktzahl Locale DE auf US Java Basics - Anfänger-Themen 5
A Umwandlung einer Datei ins int Java Basics - Anfänger-Themen 26
A Umwandlung gcj -> java Java Basics - Anfänger-Themen 4
F Umwandlung vom Dezimalsystem Java Basics - Anfänger-Themen 7
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
N Umwandlung String - double für mehrdimensionalen array Java Basics - Anfänger-Themen 2
L Umwandlung int <--> byte Java Basics - Anfänger-Themen 2
S Umwandlung von Integer zu String Java Basics - Anfänger-Themen 4
F Datentypen Umwandlung int in String Java Basics - Anfänger-Themen 6
Screen Kurze Frage Umwandlung von Zahlen Java Basics - Anfänger-Themen 2
A Umwandlung int[][][] in String Java Basics - Anfänger-Themen 7
A umwandlung biginteger in int[] Java Basics - Anfänger-Themen 9
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
J Wrapperklasse und ihre Umwandlung Java Basics - Anfänger-Themen 2
Screen Erklärung von der Umwandlung von .class in .jar o. .exe ! Java Basics - Anfänger-Themen 5
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
B Umwandlung gemäß Package-Anweisung Java Basics - Anfänger-Themen 5
$ Umwandlung von Schleifen in andere Java Basics - Anfänger-Themen 4
S Problem bei Umwandlung ins Hexadezimalsystem Java Basics - Anfänger-Themen 2
D Umwandlung char -> dezimalzahl und ausgabe als int Java Basics - Anfänger-Themen 5
G Umwandlung Java Basics - Anfänger-Themen 7
A String to Char Umwandlung. Java Basics - Anfänger-Themen 7
R "Umwandlung" SQL-Result in Objekt Java Basics - Anfänger-Themen 5
H Umwandlung von Zahlensystemen Java Basics - Anfänger-Themen 7
E Umwandlung von std, min und sek Java Basics - Anfänger-Themen 2
G Probleme mit Colour und Color, umwandlung möglich? Java Basics - Anfänger-Themen 5
J Umwandlung von Integer in Char Java Basics - Anfänger-Themen 8
Z Problem bei sql-date-Umwandlung Java Basics - Anfänger-Themen 2
T String als Array und Umwandlung in Char Java Basics - Anfänger-Themen 7
G Frage zu Umwandlung char[] in string[] bzw. Schleifen Java Basics - Anfänger-Themen 9
S Umwandlung eines Character-Streams in ein Image Java Basics - Anfänger-Themen 17
N x.toString(x); umwandlung von long in String Java Basics - Anfänger-Themen 3
F Umwandlung von String in Integer Java Basics - Anfänger-Themen 3
S Umwandlung von int in String Java Basics - Anfänger-Themen 3
J Warum funktioniert meine Umwandlung nicht? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben