2013-02-02 13 views
5

come controllare per una lettera in J2ME da un charcome controllare per una lettera in J2ME da un char

IN J2SE possiamo usare Character.isLetter (c)

voglio usare questo : if (Character.isLetter(c) && Character.isUpperCase(c)){} e anche else if(Character.isSpace(c))

IN JAVA piattaforma mobile Un modo per usarlo ??

+1

Sei sicuro di non si può utilizzare? – supersam654

+1

Character è la classe wrapper per char. E 'isLetter()' è un metodo per verificare se il dato carattere è una lettera. J2ME non lo supporta. bisogno di un metodo manuale per fare il lavoro di isLetter()? – ChamathPali

risposta

6

Visto che non è possibile utilizzare Character.isLetter(c), vorrei semplicemente emularlo funzionalmente. Lo farei trattando il personaggio come un "numero" usando il suo ASCII value.

public static boolean isLetter(char c) { 
    return (c > 64 && c < 91) || (c > 96 && c < 123); 
} 

//Not necessary but included anyways 
public static boolean isUpperCase(char c) { 
    return c > 64 && c < 91; 
} 

public static boolean isSpace(char c) { 
    //Accounts for spaces and other "space-like" characters 
    return c == 32 || c == 12 || c == 13 || c == 14; 
} 

Edit: Grazie @Nate per i suggerimenti/correzioni

+0

CLDC 1.1/MIDP 2.0 hanno 'isUpperCase()' e 'isLowerCase()', quindi non è necessario implementarli. Inoltre, il tuo 'isUpperCase()' restituisce 'true' se' c' è in minuscolo. E quindi, dovresti controllare 'c <123', o' c <= 122'. E la J2SE [versione di isSpace()] (http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#isSpace%28char%29) verifica più di un semplice '(char) 32'. Ci sono altri quattro caratteri che si qualificano come * spazio *. – Nate