[Java] von Array inhalt auf namen schließen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Phil333, 1. Januar 2011 .

  1. 1. Januar 2011
    von Array inhalt auf namen schließen

    Hallo Leute,

    ich lerne gerade eine Einführungssprache von Java und habe eine Programieraufgabe in der ein Array erzeugt wird mit 128 indexen.
    Der Array wird aber nicht wie gewöhnlich mit zahlen initialiesiert sonder so:

    Buchstaben:
    a['A'] = "65";
    ...
    a['Z'] = "90";

    Zahlen:
    a['0'] = "48";
    ...
    a['9'] = "57";

    Sonderzeichen:
    a['.'] = "47";
    ...
    a['@'] = "64";

    Also wird ein Array als char initialisiert (für Buchstaben, Zahlen und Sonderzeichen) mit einem Inhalt der ein String ist erzeugt (es muss ein String sein und keine Zahl also das ist alles die Vorgabe).

    Jeder Inhalt ist einmalig.
    wie kann ich vom Inhalt auf den char Namen des Arrays schließen?

    ich hab momentan das hier
    Code:
     
    for (char i = 'A'; i < 'Z'; i++)
    {
    if (m[i].equals(gesuchterString))
    {
    Zeichen=i;
    }
    }
    
    Leider funktioniert das nur bei den Arraynamen von A-Z.
    Sonderzeichen gehen hier nicht.

    Könnt ihr mir helfen?

    Vielen Dank!
     
  2. 1. Januar 2011
    AW: von Array inhalt auf namen schließen

    Du musst dazu wissen, dass in Java Array-Indizes immer Integers sind. Hier wird zwar ein char angegeben, doch er wird wie ein Integer behandelt, indem der zugehörige ASCII-Wert verwendet wird. D.h.
    Code:
    a['A'] = "65";
    ist nichts anderes als
    Code:
    a[65] = "65";
    Da z.B. das @-Zeichen den Wert 64 hat, wird darüber natürlich auch nicht iteriert, wenn du von 'A' = 65 bis 'Z' = 90 gehst.
     
  3. 1. Januar 2011
    AW: von Array inhalt auf namen schließen

    wenn A 65 und Z 90 ist und "." 47, dann ist doch klar das der Punkt nicht gefunden wird?

    Code:
     
    for (char i = 65; i < 90; i++)
    {
    if (m[i].equals(gesuchterString))
    {
    Zeichen=i;
    }
    }
    
    so sieht deine For-Schleife aus.

    Code:
     
    for (char i = 0; i < a.length; i++)
    {
    if (m[i].equals(gesuchterString))
    {
    Zeichen=i;
    }
    }
    
    so sollte sie sein

    oder verstehe ich hier was falsch?
     
  4. 1. Januar 2011
    AW: von Array inhalt auf namen schließen

    Code:
    for(String currentItem : m) {
     
    }
    
    Das Problem hierbei ist nur, das du den Index nicht bekommst. Aber für eine reine Iteration ist dies die beste Möglichkeit.

    Gruß
     
  5. 1. Januar 2011
    AW: von Array inhalt auf namen schließen

    Danke schonmal für eure hilfreichen antworten!

    Code:
    for (char i = 0; i < a.length; i++)
    {
    if (m[i].equals(gesuchterString))
    {
    Zeichen=i;
    }
    }
    ich wusste gar nicht das man das machen kann mit char i ^^...
    dachte hier müsste ich dann i als int initialisieren.

    Es geht so jedenfalls wunderbar!

    @wollknoll:
    ich weiß leider nicht was eine Iteration ist und hab es jetzt schon so hinbekommen.
    Werde ich wohl auch so lassen - du musst wissen ich bin anfänger.

    BW ist natürlich das mindeste..

    LG
     
  6. 2. Januar 2011
    AW: von Array inhalt auf namen schließen

    iteration ist die wiederholung

    Code:
    for(String currentItem : a) {
     
    }
    
    Diese For Schleife geht jedes Element vom Array a durch und weißt dieses der Variable currentItem zu.

    Also beim ersten durchgang ist currentItem = a[0] beim 2. currentItem = a[1] usw.
    nur das eben keine Zählvariable existiert die du nutzen kannst. Was in manchen Fällen eben auch gar nicht benötigt wird. Dann macht man das eben so.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.