# ascii code von zeichen in string ermitteln?



## Dilandau (17. Mrz 2004)

geht das so?


```
int c = getBytes(l.charAt(i))-32;//use ascii code
```

Optimal wäre vielleicht, da ich weis, dass sich um ascii handelt, anstelle von String für l etwas anders zu verwenden?


----------



## Thanni (18. Mrz 2004)

Dilandau hat gesagt.:
			
		

> geht das so?
> 
> 
> ```
> ...



hallo dil

meinst du vielleicht das hier ? probier mal aus
int intValue=(new Character (werte.charAt(j))).hashCode();

aber ich glaube damit kann nicht nur ascci sondern alle unicodezeichen , programmiere erst 2 monate java 
mfg Thanni


----------



## LR (18. Mrz 2004)

die hashCode() methode liefert einen HashCode für die Verwendung mit Hashtables zurück laut API Doku. Also würde ich diese Methode mal grundsätzlich ausschliessen.

LR


----------



## Thanni (18. Mrz 2004)

aha
ich weiss nicht genau was ein hash code ist

aber ich bekomme einen int wert der dem zeichen entspricht bei einem A zb 65  und das stimmt laut ascii
ich denke halt das man damit halt auch werte über 255 (unicode)machen kann nicht nur ascii


aber wenn ich die frage falsch verstanden habe  sorry 

mfg thanni


----------



## LR (18. Mrz 2004)

Ich weiss es auch nicht genau, was die hashCode macht. Muss mal in Doku schmökern. Habs bisher nie gebraucht ehrlich gesagt.

LR


----------



## Beni (18. Mrz 2004)

Die hashcodes definieren für jedes Objekt eine Zahl (wenn zwei Objekte gleich sind, ist es auch die gleich Zahl). Aber mit den ASCI-Zeichen hat das* rein gar nichts* zu tun..


----------



## Guest (18. Mrz 2004)

und warum funzt es dann??


weil sie rein zufällig oder in voller absicht die hashcodes den ascii werten angepasst haben ? 



mfg thanni


----------



## Illuvatar (18. Mrz 2004)

Bei mir stimmt es auch immer.

Ist aber schwer zu sagen, da hashCode eine native Methode ist.


----------



## Dilandau (18. Mrz 2004)

Manchmal geht was , das laut vorschrift nicht sein darf (weil nicht dokumentiert) und in zukünftigen versionen oder auf anderen plattformen mit anderen javamaschienen nicht unbedingt funktioniert. Das war schon auf dem Amiga so. Und davor, ich sag nur "germaniumdiode", aber beim letzteren gabs's nicht wirklich vorschriften 

Übrigens liegt kein wissen vor, ob das besagte vorgehen (siehe unten nochmal) nun ein übler trick ist oder nicht.

Kann man int intValue=(new Character (werte.charAt(j))).hashCode(); 

abkürzen als

int intValue= werte.charAt(j).hashCode();      ?

Wozu umständlich in einem character zwischenlagern wenn doch der innerste teil offensichtlich schon den typ character hat? Das ist aber nur eine frage, kein wissen.


Asciizeichen der plattform, auf der das applet geht, bekommt man garantiert mit wort.getBytes();, wobei wort ein String ist.


----------



## Thanni (18. Mrz 2004)

Dilandau hat gesagt.:
			
		

> Manchmal geht was , das laut vorschrift nicht sein darf (weil nicht dokumentiert) und in zukünftigen versionen oder auf anderen plattformen mit anderen javamaschienen nicht unbedingt funktioniert. Das war schon auf dem Amiga so. Und davor, ich sag nur "germaniumdiode", aber beim letzteren gabs's nicht wirklich vorschriften
> 
> Übrigens liegt kein wissen vor, ob das besagte vorgehen (siehe unten nochmal) nun ein übler trick ist oder nicht.
> 
> ...



ich denke mal es wird auch in weiterenversionen gehen, hoff

nöö zwischen char und Character ist ein unterschied char ist ein datentyp und Character ein Object

es gibt sicher einfachere methoden die ich noch nicht gefunden habe aber ich machs so und so geht es 

int decWert= new Character("Aber".charAt(0)).hashCode();
in decWert ist dann ne 65 drin
aber ne andere theorie  
in bezug auf :



> die hashCode() methode liefert einen HashCode für die Verwendung mit Hashtables zurück laut API Doku. Also würde ich diese Methode mal grundsätzlich ausschliessen.



die hashtabel ist vielleicht in dem fall die ascii tabelle  es geht ja schließlich um eine methode von einem Character
und der hashcode wäre dann die entsprechende nummer in der tabelle die ja dann der ascii wert ist , so bitte nicht lynchen ist nur ne theorie
aber da das ganze glaube auch mit anderen zeichen geht die nur im unicode sind und der ergebniss dann größer ist als 255 
isses wohl eine unicode tabelle

gruß thanni


----------

