דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה | java me

עזרה | java me

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 3 כותבים 288 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נ מנותק
    נ מנותק
    נ נח
    כתב ב נערך לאחרונה על ידי נ נח
    #1

    התחלתי להכין יישום ב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();
        }
      }
    }
    
    

    השגיאה:
    Nokia C2-01.png

    דבר שלישי - איך אפשר לעשות שהחישוב יהיה אוטומטית, ולא בלחיצה על 'חישוב' (כמו oninput)?

    בjavascript וactionscript הצלחתי לעשות את היישום

    @אלישי @דוב @אביי אשמח לעזרה..
    תודה רבה!

    dovidD תגובה 1 תגובה אחרונה
    1
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      השיב לנ נח ב נערך לאחרונה על ידי dovid
      #2

      @נ-נח אמר בעזרה | java me:
      תראה את הקוד שהבאת:

         for (int i = 0; i <= str.length(); i++) {
      

      זה אומר ב"סיבוב" הראשון i יהיה שווה 0. כמה הוא יהיה בסיבוב האחרון? str.length() שהרי תנאי היציאה הינו רק כאשר i יהיה גדול מהאורך. כלומר אם מדובר במילה אבא, הlength הוא 3, אז יהיה 0, 1, 2, 3 וזה מיותר כי הרי יש לנו רק שלוש אותיות.
      אז ראשית תוריד את השווה, שיהיה רק i < str.length() ואז כשיהיה 3 ה"סיבוב" לא יתבצע, ויהיה לנו רק 0, 1, 2.

      בקשר לקוד

      String sub = str.substring(i, i + 1);
      

      יש מתודה פשוטה יותר לקחת אות בודדת:

          char sub = str.charAt(i);
      

      אבל אז תצטרך לעדכן קצת את הקוד שלך, להחליף בכל מקום את אותיות ההשוואה ממרכאות כפולות (שזה סטרינג) למרכאה בודדת (שזה char = תו בודד).

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      dovidD תגובה 1 תגובה אחרונה
      3
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        בקשר לריענון אוטומטי של התוצאה בעת שינוי הטקסט בדוק פה
        https://stackoverflow.com/a/3953219/1271037

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        2
        • נ מנותק
          נ מנותק
          נ נח
          כתב ב נערך לאחרונה על ידי נ נח
          #4

          @dovid תודה! זה עובד, וגם למדתי דברים חדשים.
          לא הצלחתי עם העדכון של התוצאה (נראה לי שהקישור שהבאת זה לjava, לא לjava me)

          עריכה: הצלחתי עכשיו!
          אשריך!!!!
          Nokia C2-01.png

          L תגובה 1 תגובה אחרונה
          4
          • L מנותק
            L מנותק
            LindoorsOS
            השיב לנ נח ב נערך לאחרונה על ידי
            #5

            @נ-נח אפשר בבקשה את הJAR? תודה

            תגובה 1 תגובה אחרונה
            0
            • dovidD dovid העביר נושא זה מ-תכנות ב-

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום