keyascii

Status
Nicht offen für weitere Antworten.

guggy

Mitglied
hallo!
ich hätte eine kleine frage an euch...
Ich habe ein programm geschrieben mit dem ich rausfinden kann welche zahl zur welcher taste passt.
ich gebe also einen wet ein z.b. 65 und mein programm sagt mir das die taste zu diesen keyascii wert A ist.
dies mach ich mit den befehl : (char)eingabe;
So nun zu meiner frage wie kann ich es umgekehrt machen. ich will A eingeben und das programm soll mir 65 ausgeben....
Wäre echt super wenn mit wer helfen könnter ich hab keine idee wie das gehen könnte.
danke schon mal im voraus
mfg
 

guggy

Mitglied
nein dass funktioniert so leider nicht....
gehts bei dir????
hat jemand einen anderen vorschlag..??
mfg
 

guggy

Mitglied
der compiler zeigt mir einen fehler an.
ich habe es genau so versucht aber das geht irgendwie nicht...
funktioniert das bei dir??
wenn ja kannst du mir den genauen code geben???
mfg
 

Murray

Top Contributor
Dieser Code
Code:
char c = 'A';
int i = (int)c;
System.out.println( c + ":" + i);
sollte funktionieren.

//EDIT: Typo
 

guggy

Mitglied
ok ich hab jetzt noch ein kleines zusatzproblem.
Es funktioniert alles super aber wie kann ich das ganze variabel machen??
der code lautet jetzt so
Code:
           char c = 'D'; 
           int i = (int)c; 
           System.out.println( c + ":" + i);
wie kann ich statt char c='D';
eine variable einführen
ich will z.b Y eingeben und er soll mir die keyascii zahl ausgeben so wie ich es jetzt habe ist es nicht variabel wäre eecht super wenn ihr mir mein letztes problem auch noch lösen köntet!!!!!
vielen dank schon im voraus....
mfg[/code]
 

Murray

Top Contributor
Ein Programm, bei dem man eine Zahl eingeben kann, hast Du doch schon - das müsstest Du doch nur geringfügig anpassen. Vermutlich hast Du die Eingabe dann ja als String vorliegen; daraus kannst Du mit charAt( 0) das erste Zeichen holen.

Code:
String eingabe = ...;
if ( (eingabe != null) && (eingabe.length()>0)) {
  char c = eingabe.charAt(0); 
  int i = (int)c;
  System.out.println( c + ":" + i);
}else {
  System.out.println( "Falsche Eingabe: " + eingabe);
}
 

guggy

Mitglied
ok es funktioniert!!!! Du bist echt klasse!!!!!
aber kannst du mir den code auch noch erkläre wäre echt super!!!!!
Aber ich bin jetzt total froh das es funktrioniert!!!! DANKE!!!!! wirklich klasse!!!!
mfg
 

Murray

Top Contributor
Poste doch mal Dein Programm und schreibe dort, wo Du etwas nicht verstehst, entsprechende Kommentare dazu.
 

Leroy42

Top Contributor
String eingabe = ...; // eingabe irgendwo herbekommen
if ( (eingabe != null) && (eingabe.length()>0)) { // Wenn eingabe nicht null oder leer ist
char c = eingabe.charAt(0); // c bekommt das erste Zeichen aus eingabe zugewiesen
int i = (int)c; // i bekommt den Integerwert von c zugewiesen
System.out.println( c + ":" + i); // Ausgabe
}else {
System.out.println( "Falsche Eingabe: " + eingabe);
}[
 

guggy

Mitglied
Code:
if ( (eingabe != null) && (eingabe.length()>0)) { // Wenn eingabe nicht null oder leer ist 
char c = eingabe.charAt(0); // c bekommt das erste Zeichen aus eingabe zugewiesen 
int i = (int)c; // i bekommt den Integerwert von c zugewiesen 
System.out.println( c + ":" + i); // Ausgabe
also das verstehe ich alles auser den die zeile:
Code:
 char c = eingabe.charAt(0);
den befehl charAt(0);
was kann der befehl und was heißt der parameter (0) was würden andere parameter bezwecken???
mfg
 

Murray

Top Contributor
Der Befehl holt das erste Zeichen aus dem String. Gibt man statt der 0 z.B. eine 1 mit, dann liefert der Befehl das zweite Zeichen; bei einer 2 kommt das dritte Zeichen u.s.w.
 

Murray

Top Contributor
Dann könntest Du mit einer Schleife arbeiten:
Code:
if ( (eingabe != null) && (eingabe.length()>0)) {      // Wenn eingabe nicht null oder leer ist
  for ( int i=0; i<eingabe.length(); i++) {            // i laeuft von 0 bis (Länge des Strings - 1)
    char c = eingabe.charAt(i);                        // c bekommt das nächste Zeichen aus eingabe zugewiesen
    int ci = (int)c;                                   // ci bekommt den Integerwert von c zugewiesen
    System.out.println( "#" + i + ":" + c + "=" + ci); // Ausgabe 
  }
}
 

guggy

Mitglied
Ohhh danke das geht jetzt super genau so wie ich es mir erhofft hatte!!!!!
aber das ganze führt mich zu einer weiteren fragen..
es funktioniert eig alles so wie ich wollte ich habe jetzt: ein textField t1; da kann ich
a. eine zahl eingeben z.b 65 dann gibt mein programm in einen text Area A aus
b. ich geben eine taste ein und er gibt mir den Code dazu aus.
nun zu meiner frage: wenn ich beides in einen programm ausführen will funktioniert das nicht. jedes einzelne alleine geht einwandfrei aber zusammen tretten fehler aus(aber erst bein ausführen, der Compiler zeigt keine fehler an da der code ja richtig ist)
ich vermute da ich ja einmal einen String verwende und einmal einen int wert verwende aus den gleichen textfield das,dass programm durcheinander gerät!!
ich würde mich wirklich über eine Antwort freuen....
ps: Danke noch mal für alles alleine wäre ich wahrscheinlich nie so weit gekommen......
mfg
 

guggy

Mitglied
is es grundstzlich eig möglich über ein texfield einen String wert und einen int wert zu verwenden??
Int
Code:
String eingabe= t1.getText();
 int key = Integer.parseInt(eingabe);
Code:
String eingabest= t1.getText();
und beide werte nehme ich aus t1. kann das sein das das programm hiermit nicht zurecht kommt????
mfg
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben