Character.isLetterOrDigit aceita todas as letras e dígitos do Unicode, ou seja, letras acentuadas e dígitos em outras linguagens (como sânscrito) também valem.
Se você olhou a documentação, também não adianta usar Character.isJavaIdentifierPart, que ele pega mais coisas ainda que isLetterOrDigit. Você pode fazer as coisas "no braço":
charc='A';if('A'<= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9') {
...
}
D
dankshit
Opa, eu não tinha pensado que fazer o teste desta forma, obrigado, sempre é bom compartilhar que as ideias surgem.