2012-01-16 9 views
11

Come ottenere la posizione numerica degli alfabeti in java?Come ottenere la posizione numerica degli alfabeti in java?

Supponiamo che tramite prompt dei comandi sia stato inserito abc quindi come output ho bisogno di ottenere 123 come posso ottenere la posizione numerica degli alfabeti in java?

Grazie in anticipo.

+2

caratteri Java sono memorizzati come numeri. Leggi i numeri ASCII, puoi fare matematica sui personaggi. – Reddy

+0

Per "posizione numerica degli alfabeti", vuoi dire la posizione di un alfabeto nella parola? –

+0

Penso che voglia dire la posizione di un personaggio nell'alfabeto inglese. a = 1, b = 2, c = 3 ecc. – Jivings

risposta

28
String str = "abcdef"; 
char[] ch = str.toCharArray(); 
for(char c : ch) 
{ 
int temp = (int)c; 
int temp_integer = 96; //for lower case 
if(temp<=122 & temp>=97) 
System.out.print(temp-temp_integer); 
} 

uscita:

@Shiki Capital/lettere maiuscole utilizzare il seguente codice:

String str = "DEFGHI"; 
    char[] ch = str.toCharArray(); 
    for(char c : ch) 
    { 
     int temp = (int)c; 
     int temp_integer = 64; //for upper case 
if(temp<=90 & temp>=65) 
    System.out.print(temp-temp_integer); 
    } 

uscita: 456789

11

Convertire ciascun carattere nel relativo codice ASCII, sottrarre il codice ASCII per "a" e aggiungere 1. Sto deliberatamente lasciando il codice come esercizio.

Questo suona come i compiti. Se è così, taggalo come tale.

Inoltre, questo non avrà a che fare con le lettere maiuscole, dal momento che non è stato specificato alcun requisito per gestirle, ma se è necessario quindi solo in minuscolo la stringa prima di iniziare.

Oh, e questo si occuperà solo con il latino "a" attraverso personaggi "z" senza gli accenti, ecc

0

Questo dipende l'alfabeto, ma per quello inglese, provate questo:

String input = "abc".toLowerCase(); //note the to lower case in order to treat a and A the same way 
for(int i = 0; i < input.length(); ++i) { 
    int position = input.charAt(i) - 'a' + 1; 
} 
2
char letter; 
for(int i=0; i<text.length(); i++) 
{ 
    letter = text.charAt(i); 
    if(letter>='A' && letter<='Z') 
     System.out.println((int)letter - 'A'+1); 
    if(letter>='a' && letter<= 'z') 
     System.out.println((int)letter - 'a'+1); 
} 
0

solo logica posso suggerire di prendere due array.

uno è char matrice

e un altro è int array.

converte una stringa di input in un array di caratteri, ottiene la posizione di carattere da char e int array.

non aspettatevi il codice sorgente qui

0
String word = "blah blah"; 

for(int i =0;i<word.length;++i) 
{ 

if(Character.isLowerCase(word.charAt(i)){ 
System.out.print((int)word.charAt(i) - (int)'a'+1); 
} 
else{ 
System.out.print((int)word.charAt(i)-(int)'A' +1); 
} 
} 
1

prima cosa è necessario scrivere un ciclo per scorrere i caratteri della stringa. Dai un'occhiata alla classe String che ha i metodi per darti il ​​suo length e per trovare lo charAt ad ogni indice.

Per ogni carattere, è necessario calcolare la sua posizione numerica. Dai uno sguardo allo this question per vedere come ciò potrebbe essere fatto.

10

Un altro modo per fare questo problema oltre ad utilizzare le conversioni ASCII è il seguente:

String input="abc".toLowerCase(); 
final static String alphabet="abcdefghijklmnopqrstuvwxyz"; 
for(int i=0;i<input.length();i++){ 
    System.out.print(alphabet.indexOf(input.charAt(i))+1; 
} 
Problemi correlati