2012-01-16 22 views
11

¿Cómo obtener la posición numérica de los alfabetos en Java?¿Cómo obtener la posición numérica de los alfabetos en java?

Supongamos que a través del símbolo del sistema he ingresado abc y luego como salida necesito obtener 123 ¿cómo puedo obtener la posición numérica de los alfabetos en java?

Gracias de antemano.

+2

caracteres Java se almacenan como números. Lea sobre los números ASCII, puede hacer cálculos matemáticos. – Reddy

+0

Por "posición numérica de alfabetos", ¿te refieres a la posición de un alfabeto en la palabra? –

+0

Creo que se refiere a la posición de un personaje en el alfabeto inglés. a = 1, b = 2, c = 3 etc – Jivings

Respuesta

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); 
} 

de salida:

@Shiki a Capital/letras mayúsculas utilice el siguiente código:

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); 
    } 

Salida: 456789

11

Convierta cada carácter a su código ASCII, reste el código ASCII para "a" y agregue 1. Dejo deliberadamente el código como ejercicio.

Esto suena como tarea. Si es así, por favor marqúelo como tal.

Además, esto no se aplicará a las letras mayúsculas, ya que no indicó ningún requisito para manejarlas, pero si lo necesita, simplemente ponga la cadena en minúscula antes de comenzar.

Ah, y esto sólo se ocupará de la América "a" a la "z" caracteres sin ningún tipo de acentos, etc.

0

Esto depende del alfabeto, pero para el Inglés, intente esto:

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 lógica, puedo sugerir tomar dos matrices.

uno es Char array

y otro es array int.

convierta su cadena de entrada en una matriz de caracteres, obtenga la posición de char desde char e int array.

no esperes código fuente aquí

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

Lo primero que necesita para escribir un bucle para iterar sobre los caracteres de la cadena. Eche un vistazo a la clase String que tiene métodos para darle su length y para encontrar el charAt en cada índice.

Para cada personaje, necesita calcular su posición numérica. Eche un vistazo al this question para ver cómo se puede hacer esto.

10

Otra forma de hacer este problema, además de utilizar las conversiones ASCII es el siguiente:

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; 
} 
Cuestiones relacionadas