התחלתי להכין יישום בj2me (גימטריאון), אבל יש מניעות... 
דבר ראשון - זה לא נותן לעשות switch לסטרינג, אלא רק לint
דבר שני - עשיתי בif else ונותן שגיאה בזמן ריצה
לפי השגיאות אני חושב שהטעות נמצאת בשורות האלה:
for (int i = 0; i <= str.length(); i++) {
String sub = str.substring(i, i + 1);
הקוד המלא:
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class gematrionMIDlet extends MIDlet implements CommandListener {
private Display display;
private Form form = new Form("גימטריאון");
private Command submit = new Command("חישוב", Command.SCREEN, 1);
private Command exit = new Command("יציאה", Command.EXIT, 1);
private TextField textfield = new TextField("כתוב כאן מילים לחישוב", null, 1000, TextField.ANY);
private StringItem stringitem = new StringItem(null, "0");
public gematrionMIDlet() {
display = Display.getDisplay(this);
form.addCommand(exit);
form.addCommand(submit);
form.append(textfield);
form.append(stringitem);
form.setCommandListener(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable displayable) {
if (command == submit) {
String str = textfield.getString();
int num = 0;
for (int i = 0; i <= str.length(); i++) {
String sub = str.substring(i, i + 1);
if (sub == "א")
num += 1;
else if (sub == "ב")
num += 2;
else if (sub == "ג")
num += 3;
else if (sub == "ד")
num += 4;
else if (sub == "ה")
num += 5;
else if (sub == "ו")
num += 6;
else if (sub == "ז")
num += 7;
else if (sub == "ח")
num += 8;
else if (sub == "ט")
num += 9;
else if (sub == "י")
num += 10;
else if (sub == "כ" || sub == "ך")
num += 20;
else if (sub == "ל")
num += 30;
else if (sub == "מ" || sub == "ם")
num += 40;
else if (sub == "נ" || sub == "ן")
num += 50;
else if (sub == "ס")
num += 60;
else if (sub == "ע")
num += 70;
else if (sub == "פ" || sub == "ף")
num += 80;
else if (sub == "צ" || sub == "ץ")
num += 90;
else if (sub == "ק")
num += 100;
else if (sub == "ר")
num += 200;
else if (sub == "ש")
num += 300;
else if (sub == "ת")
num += 400;
}
this.stringitem.setText(Integer.toString(num));
} else if (command == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
השגיאה:

דבר שלישי - איך אפשר לעשות שהחישוב יהיה אוטומטית, ולא בלחיצה על 'חישוב' (כמו oninput)?
בjavascript וactionscript הצלחתי לעשות את היישום
@אלישי @דוב @אביי אשמח לעזרה..
תודה רבה!