2010-05-24 10 views
16

मेरे पास एक वैरिएबल स्ट्रिंग में परिभाषित पूंजी अक्षर है, और मैं वर्णमाला में अगले और पिछले अक्षरों को आउटपुट करना चाहता हूं। उदाहरण के लिए, यदि चर 'C' के बराबर था, तो मैं 'B' और 'D' आउटपुट करना चाहता हूं।मैं वर्णमाला में अगले या पिछले अक्षर में एक चर को कैसे बढ़ा सकता हूं?

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

आउटपुट D और B:

उत्तर

23

एक ही रास्ता:

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

धन्यवाद, कि वास्तव में मैं क्या देख रहा था है! – raleighJ

+0

लेकिन इस कोड में सभी चार शामिल हैं। न केवल पत्र, जब आप ज़ेड तक पहुंचेंगे तो आपको आश्चर्य होगा। (संख्या आदि ..) इसके अलावा, यह मानता है कि आप एक पत्र से शुरू करते हैं। – Marc

+0

मैंने ए और जेड परिस्थितियों का ख्याल रखा है, यदि बयानों के साथ कि ए के लिए पिछले पत्र ज़ेड है और जेड के बाद अगला पत्र ए है। – raleighJ

3

आप लैटिन वर्णमाला तक ही सीमित हैं, तो आप इस तथ्य है कि ASCII तालिका में पात्रों वर्णानुक्रम, तो उपयोग कर सकते हैं।

तुम क्या एक char और एक int जोड़ने के लिए, इस प्रकार प्रभावी ढंग char की ascii कोड को int जोड़ने है। जब आप char पर वापस आते हैं, तो एएससीआई कोड को एक चरित्र में परिवर्तित कर दिया जाता है।

11

खैर अगर आप मतलब 'एबीसी' तो वे az दो दृश्यों और AZ में विभाजित, सबसे आसान तरीका है मुझे लगता है कि एक चार चर का उपयोग करने के लिए और से सूचकांक को बढ़ाने के लिए किया जाएगा एक।

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

ही घटती लिए चला जाता है:

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

बात यह है कि पत्र az 97-122 कर रहे हैं और AZ 65-90 हैं, इसलिए यदि पत्र के मामले महत्वपूर्ण है कि आप की जरूरत का प्रतिनिधित्व इस पर ध्यान देना।

0

सिर्फ इस तरह:

System.out.printf("%c\n",letter); 
letter++; 
संबंधित मुद्दे