2010-05-24 14 views

risposta

23

Un modo:

String value = "C"; 
int charValue = value.charAt(0); 
String next = String.valueOf((char) (charValue + 1)); 
System.out.println(next); 
+0

Grazie, questo è esattamente quello che stavo cercando! – raleighJ

+0

Ma questo codice include tutti i caratteri. non solo lettere, avrai una sorpresa quando raggiungerai Z. (numeri ecc.) Inoltre, questo presuppone che tu inizi con una lettera. – Marc

+0

Mi sono occupato delle situazioni A & Z con istruzioni if ​​in modo che la lettera precedente ad A sia Z e la lettera successiva dopo Z sia A. – raleighJ

3

Se si sono limitati a l'alfabeto latino, è possibile utilizzare il fatto che i personaggi della tabella ASCII sono ordinate in ordine alfabetico, in modo da:

System.out.println((char) ('C' + 1)); 
System.out.println((char) ('C' - 1)); 

uscite D e B.

Quello che fai è aggiungere un char e un int, aggiungendo così efficacemente il int al codice ASCII del char. Quando si esegue il ritorno a char, il codice ASCII viene convertito in un carattere.

11

Beh, se si intende il 'ABC' poi diviso in due sequenze AZ e AZ, il modo più semplice penso che potrebbe essere quella di utilizzare una variabile char e per incrementare l'indice uno.

char letter='c'; 
letter++; // (letter=='d') 

stesso vale per il decremento:

char letter='c'; 
letter--; // (letter=='b') 

cosa è che la rappresentazione delle lettere AZ sono 97-122 e AZ sono 65-90, quindi se il caso della lettera è importante è necessario prestare attenzione ad esso.

0

proprio come questo:

System.out.printf("%c\n",letter); 
letter++; 
Problemi correlati