2010-10-28 12 views

cevap

100

Character.isDigit(string.charAt(index)) (JavaDoc) bir rakam
Character.isLetter(string.charAt(index)) ise doğru geçer (JavaDoc o

+8

Not: Bu, karakterin bir Unicode harf/rakam olup olmadığını size söyler. OP, "bir A-z harfi" istedi ... bunun anlamı ne olursa olsun. –

+0

Neden ASCII ├ (255) benim durumumda geçiyor? Sadece a-z, A-Z ve 0-9 için düşündüm mü? – mr5

+0

Javadocs için ölü bağlantılar. –

3

Değerini karşılaştırın. Bu 'a' ve 'z', 'A' ve Z '', '0' ve '9'

değeri arasında olmalıdır
+0

Bu kılavuz yaklaşım yerleşik 'Character.isLetter()' yöntemle daha iyidir ? –

+1

@IgorGanapolsky - Tam olarak ne yapmaya çalıştığınıza bağlı. İpucu: Farklı şeyler yaparlar! –

+0

@StephenC Ben Character.isLetter() 'rudimentary olduğunu düşündüm. Uluslararasılaşmadan bahsetmedikçe? –

6

Ben iyi bilmiyorum bir mektup ise) gerçek dönecek ama bunlar benim için çok basit görünüyor: Eğer bunları dikkatle incelersek (cevapların olarak

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

belirtir), sorunuzu Belirsiz. "A-z harfi" ya da bir rakamla ne demek istiyorsun? Eğer bir karakter Unicode harf veya rakam olup olmadığını bilmek istiyorsanız

  • ardından Character.isLetter ve Character.isDigit yöntemleri kullanın. Bir karakter bir ASCII harf veya rakam olup olmadığını bilmek istiyorsanız, yapılacak en iyi şey karakteri ile karşılaştırarak test etmektir

  • , 'A' için ' 'a' için 'z' aralıkları Z 've' 0 'ila' 9 '. tüm ASCII harfler/rakam Unicode harfler/rakam vardır ... ama ASCII olmayan pek çok Unicode harf/rakam karakterler olmadığından emin

Not. Örneğin, aksanlı harfler, kiril, Sanskritçe, ... için

+0

Bir karakterin kiril harf olup olmadığını nasıl belirleyebilirim? –

+0

İlk olarak, yeni bir Soru sor –

8

Java Karakter sınıf I Latin harfleri biri yalnızca kontrol eden bir fonksiyon için arıyorum 1.0.2

+0

Doğru cevap bu. –

10

sürümü beri isLetterOrDigit yöntemi vardır veya ondalık sayı. char c = 255'dan itibaren, yazdırılabilir sürümde ve Character.isLetter(c) tarafından bir harf olarak kabul edilir. Bence Bu fonksiyon çoğu geliştirici arıyoruz budur:

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')) 
    // ... 

Kaynak: https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html

+0

Önceki kod yanlıştır, çünkü yalnızca İngilizce ve diğer birkaç dil ile çalışır. Önceki örneği uluslararası hale getirmek için, aşağıdaki ifadelerle değiştirin: char ch; // ... // Bu kod tamamdır! if (Character.isLetter (ch)) // ... if (Character.isDigit (ch)) // ... if (Character.isSpaceChar (ch)) // .. –

+0

OP açıkça bir string.charAt (index) Az bir harf ise sorulur. Yani başka dillerden söz etmiyoruz değil mi? – 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

Bu normal ifade yanıtı değil – user7294900

İlgili konular