अगर कोई स्ट्रिंग .harAt (इंडेक्स) रेगुलर एक्सप्रेशंस का उपयोग किए बिना जावा में एक एज़ अक्षर या एक नंबर है, तो पहचानने का सबसे अच्छा और / या सबसे आसान तरीका क्या है? धन्यवाद।
अगर कोई स्ट्रिंग .harAt (इंडेक्स) रेगुलर एक्सप्रेशंस का उपयोग किए बिना जावा में एक एज़ अक्षर या एक नंबर है, तो पहचानने का सबसे अच्छा और / या सबसे आसान तरीका क्या है? धन्यवाद।
जवाबों:
Character.isDigit(string.charAt(index))
( JavaDoc ) अगर यह एक अंक है
Character.isLetter(string.charAt(index))
( JavaDoc ) अक्षर के सही होने पर वापस आ जाएगा
Character.isLetterOrDigit(string.charAt(index))
दोनों सत्यापन के लिए उपयोग करें ।
मैं एक ऐसे फंक्शन की तलाश कर रहा हूं, जो तभी चेक करे जब वह लैटिन अक्षरों या दशमलव संख्या में से एक हो। चूंकि char c = 255
, प्रिंट करने योग्य संस्करण में able है और इसे एक अक्षर के रूप में माना जाता है Character.isLetter(c)
। यह फ़ंक्शन मुझे लगता है कि अधिकांश डेवलपर्स क्या देख रहे हैं:
private static boolean isLetterOrDigit(char c) {
return (c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9');
}
u00ff
कोडपॉइंट वास्तव में चरित्र is है। (लोअर-केस y एक umlaut के साथ।) कोडपॉइंट जो ├ का प्रतिनिधित्व करता है u251c
।
if (c in 'a'..'z' || с in 'A'..'Z' || c in '0'..'9')
जैसा कि उत्तर इंगित करते हैं (यदि आप उन्हें ध्यान से जांचते हैं!), तो आपका प्रश्न अस्पष्ट है। "अज़ अक्षर" या अंक से आपका क्या तात्पर्य है?
यदि आप जानना चाहते हैं कि क्या एक चरित्र यूनिकोड पत्र या अंक है, तो Character.isLetter
और Character.isDigit
विधियों का उपयोग करें ।
यदि आप जानना चाहते हैं कि क्या कोई अक्षर ASCII अक्षर या अंक है, तो सबसे अच्छी बात यह है कि चरित्र की 'a' से 'z', 'A' से 'Z' और '0' की तुलना करके परीक्षण किया जा सकता है। '9'।
ध्यान दें कि सभी ASCII अक्षर / अंक यूनिकोड अक्षर / अंक हैं ... लेकिन कई यूनिकोड अक्षर / अंक अक्षर हैं जो ASCII नहीं हैं। उदाहरण के लिए, उच्चारण अक्षर, सिरिलिक, संस्कृत, ...
सामान्य उपाय यह करना है:
Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);
और फिर यह देखने के लिए परीक्षण करें कि क्या ब्लॉक उन लोगों में से एक है जिन्हें आप में रुचि रखते हैं। कुछ मामलों में आपको कई ब्लॉकों के लिए परीक्षण करना होगा। उदाहरण के लिए, सिरिलिक वर्णों के लिए (कम से कम) 4 कोड ब्लॉक हैं और लैटिन के लिए 7। Character.UnicodeBlock
वर्ग अच्छी तरह से ज्ञात ब्लॉकों के लिए स्थिर स्थिरांक परिभाषित करता है; javadocs देखें ।
ध्यान दें कि कोई भी कोड बिंदु अधिकांश एक ब्लॉक में होगा।
जावा चरित्र वर्ग में 1.0.2 संस्करण के बाद से एक iLetterOrDigit विधि है
// 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
if a string.charAt(index) is an A-z letter
। तो क्या हम अन्य भाषाओं के बारे में बात नहीं कर रहे हैं?
इसके मूल्य की तुलना करें। यह 'a' और 'z', 'A' और 'Z', '0' और '9' के मान के बीच होना चाहिए।
Character.isLetter()
पद्धति से बेहतर है ?
Character.isLetter()
कि अल्पविकसित है। जब तक हम अंतर्राष्ट्रीयकरण की बात नहीं कर रहे हैं?
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");
}
}