waterml/src/main/java/ucar/nc2/ogc/erddap/util/ErddapString2.java
public static boolean isLetter(int c) {
        //return (((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))
        //|| ((c >= '\u00c0') && (c <= '\u00FF') && (c != '\u00d7')
        //&& (c != '\u00f7')));
        if (c <  'A') return false;
        if (c <= 'Z') return true;
        if (c <  'a') return false;
        if (c <= 'z') return true;
        if (c <  '\u00c0') return false;
        if (c == '\u00d7') return false;
        if (c <= '\u00FF') return true;
        return false;
    }
public static boolean isLetter(int c) {
        //return (((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z'))
        //|| ((c >= '\u00c0') && (c <= '\u00FF') && (c != '\u00d7')
        //&& (c != '\u00f7')));
        if (c <  'A') return false;
        if (c <= 'Z') return true;
        if (c <  'a') return false;
        if (c <= 'z') return true;
        if (c <  '\u00c0') return false;
        if (c == '\u00d7') return false;
        if (c <= '\u00FF') return true;
        return false;
    }
public static boolean isLetter ( int c ) { //return (((c >= 'a') && (c <= 'z')) || ((c >= 'A') && (c <= 'Z')) //|| ((c >= '\u00c0') && (c <= '\u00FF') && (c != '\u00d7') //&& (c != '\u00f7'))); if ( c < ' ' ) return false ; if ( c <= ' ' ) return true ; if ( c < ' ' ) return false ; if ( c <= ' ' ) return true ; if ( c < ' ' ) return false ; if ( c == ' ' ) return false ; if ( c <= ' ' ) return true ; return false ; }
This includes hiASCII/ISO Latin 1/ISO 8859-1, but not extensive unicode characters.
Letters are A..Z, a..z, and #192..#255 (except #215 and #247).
For unicode characters, see Java Lang Spec pg 14.

@param c a char
@return true if c is a letter
This includes hiASCII / ISO Latin 1 / ISO 8859 - 1 but not extensive unicode characters . Letters are A .. Z a .. z and #192 .. #255 ( except #215 and #247 ) . For unicode characters see Java Lang Spec pg 14 .