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

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

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

עזרה | java me

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 3 כותבים 376 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נ
    נ
    נ נח
    כתב ב נערך לאחרונה על ידי נ נח
    #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
    • נ נ נח

      התחלתי להכין יישום ב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
      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 dovid

        @נ-נח אמר בעזרה | 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 = תו בודד).

        dovidD
        dovidD
        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
          • נ נ נח

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

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

            L
            L
            LindoorsOS
            כתב ב נערך לאחרונה על ידי
            #5

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

            תגובה 1 תגובה אחרונה
            0

            שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

            נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

            בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

            הרשמה התחברות
            תגובה
            • תגובה כנושא
            התחברו כדי לפרסם תגובה
            • מהישן לחדש
            • מהחדש לישן
            • הכי הרבה הצבעות


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

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

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