2009-06-22 12 views
21

हम दर्ज किए गए किसी व्यक्ति के अगले चरित्र को कैसे ढूंढ सकते हैं। उदाहरण के लिए, यदि मैंने चरित्र "बी" दर्ज किया है तो मुझे जवाब "सी" कैसे प्राप्त होगा?वर्णमाला के अगले चरित्र को कैसे ढूंढें?

+5

अगर मैं "ñ" दर्ज करता हूं तो क्या जवाब है? और सी"? और 1"? तथा "।"? (संबंधित प्रश्न: क्या इनपुट में कोई प्रतिबंध हैं?) –

उत्तर

29

इस प्रयास करें:

char letter = 'c'; 

if (letter == 'z') 
    nextChar = 'a'; 
else if (letter == 'Z') 
    nextChar = 'A'; 

else 
    nextChar = (char)(((int)letter) + 1); 

इस तरह से जब चार वर्णमाला के आखिरी है आप कोई परेशानी नहीं है।

+2

रुको - '+ 1' के साथ '+ 1' को प्रतिस्थापित करें और आपको ... मिल जाए? – Treb

13

कैसे के बारे में:

char first = 'c'; 
char nextChar = (char)((int) first + 1); 
+2

'z' के लिए यह क्या लौटाता है? –

+1

यह निश्चित रूप से काम नहीं करेगा। मैं सत्यापन कोड जोड़कर सरल होने की कोशिश कर रहा था। लेकिन टिप्पणी पर टिप्पणी देखकर, मुझे लगता है कि मुझे जवाब नहीं देना चाहिए था। क्या मुझे अपना जवाब हटाना चाहिए? – Hemant

+0

यदि पहला char = 'z' है, तो यह कोड अगले char को देगा जो '{' है, इस प्रकार वर्णमाला में नहीं है। – rogeriopvl

2

शायद सबसे आसान तरीका है एक छोटे से समारोह और 26 वर्ण की एक सरणी है। फिर आप तय कर सकते हैं कि आप 'z' के लिए क्या वापस करना चाहते हैं।

+0

बेशक, यह हो सकता है कि होमवर्क प्रश्न क्या हो रहा है ... –

1

चरित्र को संख्या में कनवर्ट करें, संख्या बढ़ाएं और फिर वापस कनवर्ट करें।

लेकिन विचार करें कि "z" या "á" (तीव्र के साथ लैटिन छोटे लिटर ए) के लिए क्या होगा।

0

आपको अगले चरित्र में आने वाले चरित्र में केवल 1 जोड़ने की आवश्यकता है। यह एएससीआईआई मूल्यों पर काम करता है।

+3

... 'y' तक। –

0

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

+0

लॉल।जर्मनी में हम अंग्रेजी में उसी क्रम में अल्फाबेथ को कॉल करते हैं। अतिरिक्त पत्र ü, ö और ä किसी भी स्थिति से बाहर हैं। हां इस बारे में कभी सोचा नहीं। इस 3 अक्षरों के लिए नरक क्यों नहीं है ओओ। – C4u

5

ध्यान दें कि एक char अंतर्निहित रूप से एक int को डाला जाएगा। यहाँ एक सरल समाधान है:

char incrementCharacter(char input) 
{ 
    return (input == 'z'? 'a': (char)(input + 1)); 
} 
0

यह एक्सेल आवेदन इधर-उधर उपयोगी मूल्य बदलें पिछले कॉलम को खोजने के लिए

सार्वजनिक स्थैतिक स्ट्रिंग PrevExecelColumn (स्ट्रिंग रों) { एस = s.ToUpper(); char [] ac = s.ToCharArray(); int ln = ac.Length; (int i = ln - 1; i> -1; i--) { char c = ac [i];

  if (c == 'A') 
      { 
       ac[i] = 'Z'; 
       continue; 
      } 

      ac[i] = (char)(((int)ac[i]) - 1); 
      break; 

     } 
     s = new string(ac); 
     return s; 
    } 
संबंधित मुद्दे