Wie wird das Zeichen einer numerischen Position in Java zugeordnet?

8

z. B.

  • Eingabe: ['A', 'Z', 'F', 'D', ...]
  • Ausgabe: [0, 25, 5, 3, ...]

In C würde ich einfach das Zeichen von 'A' subtrahieren, aber in Java scheint das nicht möglich zu sein.

    
Alex Budovski 02.04.2010, 01:01
quelle

6 Antworten

13

Sie können auch einfache mathematische Funktionen mit Zeichen in Java ausführen:

%Vor%

gibt 0 aus.

    
jarnbjo 02.04.2010, 01:04
quelle
21

Verwenden Sie die Methode indexOf für ein String-Objekt. Zum Beispiel

"ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf('F')

gibt 5 zurück.

    
Etaoin 02.04.2010 01:04
quelle
4

Tatsächlich ist der Schwachpunkt der anderen Lösungen hier, dass sie String-Erstellung beinhalten

%Vor%

Sie können jetzt die Ordinalfunktion verwenden, um den Offset hier zu erhalten. z.B. Alphabet.L.ordinal ();

Da ich jedoch davon ausgehe, dass es sich um Funktionen handelt, ist hier eine nützlichere Definition

%Vor%

Hinweise: Im Gegensatz zu anderen Sprachen können Sie eine Enumeration in einer eigenen Datei genau wie eine Klasse deklarieren. Tatsächlich können Enums wie oben gezeigt auch Felder und Methoden enthalten, die Felder sind statisch angelegt und sehr schwer zu knacken. Tatsächlich ist die Verwendung einer Enumeration mit nur lokalen Methoden und Variablen und einem einzigen Enum-Typ namens INSTANCE der empfohlene Weg, um ein Singleton zu erzeugen, da es selbst durch Reflektion unzerbrechlich ist.

Vielleicht möchten Sie auch daran denken, einen Aufruf von toUppercase () zu übernehmen, wenn Sie die Aufrufe der Funktion

nicht steuern

Wenn Sie Ihr Alphabet dynamischer erstellen möchten, anstatt ein vordefiniertes Alphabet zu verwenden, sollten Sie sich Karten ansehen

    
K.Barad 31.07.2012 05:44
quelle
2

Die Ausgabe, die Sie erwarten, ist nur die offset eines Großbuchstabens in Bezug auf 'A' . Also subtrahiere einfach den Unicode-Wert von 'A' vom Unicode-Wert des Buchstabens, dessen Offset benötigt wird.

Beispiel: 'B' - 'A' = 1

    
codaddict 02.04.2010 01:07
quelle
1

Hier ist eine andere Implementierung, die in logarithmischer Zeit abläuft:

Klasse

%Vor%

Komponententest

%Vor%     
yakshaver 02.04.2010 02:42
quelle
-1
%Vor%     
Stefan Kendall 02.04.2010 01:05
quelle

Tags und Links