2016-07-22 20 views
-2

Ich habe ein Array von Zeichenketten wie so:zu finden, was ganze Zahl mit einem String in einem Array entspricht

public ModeValue mode = new ModeValue("test_mode", "dog", new String[] { 
     "cat", "dog", "rabbit", "horse", "bear", "fish", "bird", "snake" 
}, this); 

Ich würde gerne wissen, wie jede Zeichenfolge als eine ganze Zahl zu behandeln. Zum Beispiel: Katze = 1, Hund = 2, Kaninchen = 3, usw. Und dann möchte ich auf jeden String zugreifen, indem ich diese ganze Zahl benutze. Dies wird in einer Liste von Strings verwendet, auf die geklickt werden kann, um die Modi umzuschalten.

+0

die Array wie ist das? habe ich das nie in Java gesehen –

+1

Ich bin mir nicht sicher, ob ich deine Frage richtig verstehe, aber kannst du nicht einfach den Index des Arrays benutzen? Wenn dies aus irgendwelchen Gründen für Sie keine Option ist, konvertieren Sie das Array einfach in eine HashMap . – sinclair

+0

Bitte lesen Sie: http://stackoverflow.com/documentation/java/99/arrays/408/accessing-contents-of-an-array. Wenn das nicht hilft, bearbeiten Sie Ihre Frage und klären Sie Ihr Problem. –

Antwort

0

In einem Array von Strings können Sie Integer bereits mit Strings abbilden. Um die mit einer Ganzzahl verknüpfte Zeichenkette zu erhalten, schaue einfach in das Feld an dem Index, der durch die ganze Zahl angegeben ist (z. B. MyArray[myInteger]). Um die Ganzzahl zu erhalten, die einer Zeichenkette zugeordnet ist, durchsuchen Sie das Array und suchen Sie den Index, bei dem die gewünschte Zeichenkette angezeigt wird. Bitte achten Sie darauf, dass Strings nicht mehrfach im Array vorkommen dürfen, da dies eine 1..1 Verknüpfung zwischen Ints und Strings verhindern würde.

Sie müssen dafür kein Array verwenden - andere indizierbare Datenstrukturen wie Listen und Hashtables sind ebenfalls verwendbar.

Diese Art von Datenstruktur wird als Nachschlagetabelle bezeichnet und ist nicht ungewöhnlich.

0

Unter der Annahme, dass Ihr String Array das ist und dass Sie ein ModeValue Objekt mit ihm initialisiert wird:

new String[] { 
    "cat", "dog", "rabbit", "horse", "bear", "fish", "bird", "snake" 
} 

Gerade jetzt ist es anonym erklärt. Sie müssen es früher mit einem Namen deklarieren, um mit Namen und Index darauf zugreifen zu können.

Ex:

String[] animals = new String[] {"cat", "dog", "rabbit", "horse", "bear", "fish", "bird", "snake"}; 
System.out.print(animals[0]); //cat 
public ModeValue mode = new ModeValue("test_mode", "dog", animals, this); 

Ohne weitere Einzelheiten über ModeValue, ich bin nicht sicher, wie mit dem Schalten oder wie, um die Anordnung innerhalb des mode Objekt zuzugreifen. Sie könnten eine get Methode in ModeValue implementieren, um das Array zurückzugeben, mit dem Sie wie gewohnt darauf zugreifen können.

Beispiel dafür, wie man eine get-Methode in der Klasse ModeValue erklären würde

public class ModeValue 
{ 
    private String[] animals; 
    public getAnimals() 
    { 
     return animals; 
    } 
} 

Und bekommen Tiere wie in der Hauptmechanismus wie folgt:

String[] mainAnimals = mode.getAnimals(); 
+0

Ich wollte den aktuellen String-Modus irgendwie in eine Ganzzahl umwandeln: (Integer) this.mode.getValue() Dies führt jedoch zu einem Casting-Fehler. Irgendwelche weiteren Ratschläge? – Kayoki

+0

Oh. Sie versuchen, das Array nach "Hund" zu durchsuchen und den Index "Hund" zurückzugeben? – orccrusher99