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":
char c = 'A';
if ('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9') {
...
}