Vi chiedo aiuto, perchè oggi mi sento molto pigro, e non mi va di scrivere 348743784387 condizioni di switch. 
Vi posto il codice che vorrei evitar di scrivere:
codice:
static void eval_expr(String expr) {
for (int i = 0; i < expr.length(); i++) {
switch (expr.charAt(i)) {
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm':
case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
System.out.println( "Hai scritto: ".concat(expr.substring(i,i+1)) );
break;
}
}
}
Visto che voglio includere le lettere maiuscole, i numeri, parentesi graffe e quant' altro, è possibile fare tipo un range, o qualcosa che faccia in modo che il codice sia il più possibile stringato e, soprattutto, meno "biblico"? 
Grazie in anticipo. 
P.S. : So benissimo che avrei potuto scrivere tutto ciò in maniera ESTREMAMENTE più semplice, ma questo mi serve poichè voglio creare da 0 una funzione di evaluazione.
Evitando di scrivere 32239 parole inutili, scrivo un esempio chiarificatore:
Se scrivo
codice:
eval_expr("{x}^{2}");
voglio che tale funzione mi calcoli la funzione x al quadrato entro un certo range prestabilito. Appunto per questo mi serviva mettere le condizioni di switch entro un range, per evitare porzioni di codice di grandezza "biblica".