2010-10-28 11 views
44

यह पहचानने का सबसे अच्छा और/या सबसे आसान तरीका क्या है यदि string.charAt (अनुक्रमणिका) नियमित अभिव्यक्तियों का उपयोग किये बिना जावा में एक ए-जेड अक्षर या संख्या है? धन्यवाद।रेगेक्स का उपयोग किए बिना जावा में कोई अक्षर या अक्षर है या नहीं, यह बताने का सबसे अच्छा तरीका क्या है?

उत्तर

100

Character.isDigit(string.charAt(index)) (JavaDoc) सच वापस आ जाएगी अगर यह एक अंकों
Character.isLetter(string.charAt(index)) है (JavaDoc) सच वापस आ जाएगी अगर यह एक पत्र

+8

नोट: यह आपको बताता है कि क्या चरित्र यूनिकोड अक्षर/अंक है। ओपी ने "ए-जेड लेटर" के लिए कहा ... जो भी इसका मतलब है। –

+0

ASCII ├ (255) मेरे मामले में क्यों गुजरता है? मैंने इसे ए-जेड, ए-जेड और 0-9 के लिए सोचा था? – mr5

+0

javadocs के लिए मृत लिंक। –

3

इसके मूल्य की तुलना करें। यह 'एक' और 'z', 'ए' और 'Z', '0' और '9'

का मूल्य के बीच होना चाहिए
+0

यह मैनुअल दृष्टिकोण में निर्मित 'Character.isLetter()' विधि से बेहतर है ? –

+1

@ इगोरगानापोलस्की - यह ठीक से निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं। संकेत: वे अलग-अलग चीजें करते हैं! –

+0

@StephenC मैंने सोचा कि 'Character.isLetter() 'प्राथमिक है। जब तक हम अंतर्राष्ट्रीयकरण के बारे में बात नहीं कर रहे हैं? –

6

के बारे में मैं सबसे अच्छा पता नहीं है, लेकिन यह मेरे लिए बहुत सरल लगता है: (यदि आप उन्हें ध्यान से जांच

Character.isDigit(str.charAt(index)) 
Character.isLetter(str.charAt(index)) 
13

जवाब के रूप में संकेत मिलता है), आपके सवाल अस्पष्ट है। "ए-जेड लेटर" या अंक से आपका क्या मतलब है?

  • आप अगर एक चरित्र एक यूनिकोड अक्षर या अंक है पता करने के लिए चाहते हैं, तो Character.isLetter और Character.isDigit तरीकों का उपयोग।

  • आप अगर एक चरित्र एक ASCII अक्षर या अंक है पता करने के लिए चाहते हैं, तो ऐसा करने के लिए सबसे अच्छी बात चरित्र के साथ तुलना करके परीक्षण करने के लिए है, पर्वतमाला 'एक' के लिए 'z' 'ए' के ​​लिए ' जेड 'और' 0 'से' 9 'तक।

ध्यान दें कि सभी ASCII अक्षर/अंक यूनिकोड अक्षर/अंक हैं ... लेकिन कई यूनिकोड अक्षर/अंक अक्षर है कि ASCII नहीं हैं। उदाहरण के लिए, उच्चारण चिह्न वाले अक्षरों, सिरिलिक, संस्कृत, ... के लिए

+0

तो यह निर्धारित करने के लिए कि कोई चरित्र एक सिरिलिक अक्षर है या नहीं? –

+0

सबसे पहले, आप एक नया प्रश्न पूछें –

8

जावा चरित्र वर्ग संस्करण के बाद से एक isLetterOrDigit विधि 1.0.2

+0

यह सही उत्तर है। –

10

मैं एक समारोह है कि जाँच करता है, बशर्ते यह वही लातिन अक्षरों में से एक है के लिए देख रहा हूँ है या एक दशमलव संख्या। चूंकि char c = 255, जो प्रिंट करने योग्य संस्करण में है और Character.isLetter(c) द्वारा एक पत्र के रूप में माना जाता है। इस समारोह मुझे लगता है कि सबसे डेवलपर्स के लिए देख रहे है:

private static boolean isLetterOrDigit(char c) { 
    return (c >= 'a' && c <= 'z') || 
      (c >= 'A' && c <= 'Z') || 
      (c >= '0' && c <= '9'); 
} 
0
// check if ch is a letter 
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) 
    // ... 

// check if ch is a digit 
if (ch >= '0' && ch <= '9') 
    // ... 

// check if ch is a whitespace 
if ((ch == ' ') || (ch =='\n') || (ch == '\t')) 
    // ... 

स्रोत: https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html

+0

पिछला कोड गलत है क्योंकि यह केवल अंग्रेज़ी और कुछ अन्य भाषाओं के साथ काम करता है। पिछले उदाहरण को अंतर्राष्ट्रीयकृत करने के लिए, इसे निम्नलिखित कथनों से प्रतिस्थापित करें: char ch; // ... // यह कोड ठीक है! अगर (Character.isLetter (ch)) // ... अगर (Character.isDigit (ch)) // ... अगर (Character.isSpaceChar (ch)) // .. –

+0

ओपी ने स्पष्ट रूप से पूछा कि क्या एक string.charAt (अनुक्रमणिका) एक एज़ लेटर है। तो हम अन्य भाषाओं के बारे में बात नहीं कर रहे हैं हम हैं? – retrazil

0
import java.util.Scanner; 
public class v{ 
public static void main(String args[]){ 
Scanner in=new Scanner(System.in); 
    String str; 
    int l; 
    int flag=0; 
    System.out.println("Enter the String:"); 
    str=in.nextLine(); 
    str=str.toLowerCase(); 
    str=str.replaceAll("\\s",""); 
    char[] ch=str.toCharArray(); 
    l=str.length(); 
    for(int i=0;i<l;i++){ 
     if ((ch[i] >= 'a' && ch[i]<= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')){ 
     flag=0; 
     } 
     else 

     flag++; 
     break; 
     } 
if(flag==0) 
    System.out.println("Onlt char"); 


} 
} 
+2

यह एक नियमित अभिव्यक्ति उत्तर नहीं है – user7294900

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

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