2010-05-24 12 views
16

Değişken bir dizede tanımlanmış bir büyük harfim var ve alfabedeki sonraki ve önceki harfleri vermek istiyorum. Örneğin, değişken 'C''a eşitse, 'B' ve 'D' çıktılarını almak istiyorum.Bir değişkeni alfabedeki sonraki veya önceki harfe nasıl ekleyebilirim?

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

çıkışları D ve B: Eğer latin alfabesi ile sınırlıdır Eğer

cevap

23

Tek yönlü:

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

Teşekkürler, bu benim aradığım de buydu! – raleighJ

+0

Ancak bu kod tüm karakterleri içerir. sadece harf değil, Z.'ye ulaştığınızda bir sürpriz olacaksınız (sayılar vs.) Ayrıca, bu bir harfle başlayacağınızı varsayar. – Marc

+0

A ve Z durumlarına dikkat ettim, eğer deyim A ile önceki A harfi Z ve Z ise A'dan sonraki harf. – raleighJ

3

, ASCII tablosundaki karakterleri böylece, alfabetik gerçeğini kullanabilirsiniz.

Ne yapmak nedenle etkili char ait ASCII koduna int ekleyerek, bir char ve int eklemektir. char'a geri döndüğünüzde, ascii kodu bir karaktere dönüştürülür.

11

sen 'ABC' o zaman iki az dizileri ve AZ ayrılır demek Eh, ben düşünüyorum basit yolu bir char değişkeni kullanmaktır tarafından endeksini artırmak olacaktır bir. Aynı

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

eksiltme için de geçerli:

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

şey olduğunu 97-122 ve harfin durumda ihtiyacınız önemliyse bunu AZ, 65-90 olan az harflerin temsil buna dikkat etmek. aynen böyle

0

:

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