2011-04-03 14 views
7

मैं चार विधि isLetter() का उपयोग करने की कोशिश कर रहा हूं, जो कि चरित्र है कि चरित्र एक पत्र है या नहीं। लेकिन जब मैं विधि को कॉल करता हूं, तो मुझे यह कहते हुए एक त्रुटि मिलती है कि "चार को संदर्भित नहीं किया जा सकता है।" मुझे नहीं पता कि एक char को कम करने या त्रुटि को ठीक करने का तरीका क्या है। प्रश्न में बयान है:"चार को संदर्भित नहीं किया जा सकता है" त्रुटि

if (ch.isLetter()) 
{ 
.... 
.... 
} 

कोई मदद? एक char को कम करने का क्या मतलब है और मैं ऐसा करने से कैसे बचूं? नहीं एक वस्तु - -

+1

प्राइमेटिव पर विधियों को कॉल करने का प्रयास न करें। Character.isLetter (सी) के बारे में कैसे; –

उत्तर

18

प्रकार चार एक आदिम है, इसलिए यह अपसंदर्भन dereferenced नहीं किया जा सकता

एक संदर्भ से जाना जाता मूल्य तक पहुँचने की प्रक्रिया है। चूंकि एक char पहले से ही एक मान (संदर्भ नहीं) है, इसे अस्वीकार नहीं किया जा सकता है।

उपयोग Character वर्ग:

if(Character.isLetter(c)) { 
+1

+1 - हालांकि यह भी ध्यान दिया जाना चाहिए कि 'Character.isLetter (c)' में '.'' वर्ण 'की स्थिर विधि के उपयोग को दर्शाता है। –

0

मुझे लगता है कि ch एक char रूप में घोषित किया है। चूंकि char एक आदिम डेटा प्रकार है और नहीं और ऑब्जेक्ट है, इसलिए आप इससे कोई मेथॉफ़ नहीं कह सकते हैं। आपको Character.isLetter(ch) का उपयोग करना चाहिए।

1

char में कोई तरीका नहीं है - यह जावा primitive है। आप Character रैपर वर्ग की तलाश में हैं।

उपयोग होगा: Character.isLetter(ch) थोड़ा अधिक शब्दों लग रहा है

if(Character.isLetter(ch)) { //... } 
0

हैं/बदसूरत आप एक स्थिर आयात का उपयोग कर सकते हैं।

import static java.lang.Character.*; 


if(isLetter(ch)) { 

} else if(isDigit(ch)) { 

} 
संबंधित मुद्दे