עבור לתוכן

שאלה ב JAVA

Featured Replies

פורסם

אני צריך לבנות INPUT DIALOG (הוא קורא רק STRING ) ואני צריך למשל לרשום בתוכו1+1 (או כל סימן אחר למשל * / -) ושזה יביא לי את התוצאה 2 ואם אני לא רושם בתוכו מספר אלה אות שירשום לי ארור

ואת התשובה להחזיר ב MESSAGEDIALOG

תודה

פורסם

בסטרינג שחזר לך, תחפש את אחד הסימנים, ותפצל את המחרוזת ל- 3 לפי המיקום שמצאת - לפני הסימן, אחרי, ואת הסימן עצמו. אם הסימן לא נמצא במחרוזת, תחזיר שגיאה.

לחלק שלפני ואחרי תעשה Integer.parse, ואם הוא זורק EXCEPTION תתן הודעת שגיאה.

פורסם
  • מחבר

זה מה שחבר שלי עשה אבל זה נראה לי ממה לא חסכוני



// Fig. 3.18: NameDialog.java
// Basic input with a dialog box.

import javax.swing.JOptionPane;

public class NameDialog
{
public static void main( String args[] )
{
int num=0, num2=0;
String option = "";
// prompt user to enter name
String name = JOptionPane.showInputDialog( "Enter the calculation" );

for (int i=0; i<name.length(); i++) {
if ((name.charAt(i) != '0') && (name.charAt(i) != '1') && (name.charAt(i) != '2') && (name.charAt(i) != '3') && (name.charAt(i) != '4')
&& (name.charAt(i) != '5') && (name.charAt(i) != '6') && (name.charAt(i) != '7') && (name.charAt(i) != '8') && (name.charAt(i) != '9'))
{
if (option.isEmpty())
option = ""+name.charAt(i);
else {
num = calc(num, option, num2);
option = ""+name.charAt(i);
num2=0;
}
}
else {
if (option.isEmpty()) {
num *=10;
num += (name.charAt(i) - (int)'0');
}
else {
num2 *=10;
num2 += (name.charAt(i) - (int)'0');
}
}
}
if (!(option.isEmpty()))
num = calc(num, option, num2);
String message = String.format( "%s = %d", name, num);
JOptionPane.showMessageDialog( null, message );
} // end main

static int calc (int num1, String option, int num2) {
char opt = option.charAt(0);
if (opt == '+') {
num1 += num2;
}
else if (opt == '-') {
num1 -= num2;
}
else if (opt == '/') {
num1 /= num2;
}
else if (opt == '*') {
num1 *= num2;
}
else {
JOptionPane.showMessageDialog(null, "Only +, -, *, /, are allowed as options. please do not use something else.");
System.exit(0);
}
return num1;
}

} // end class NameDialog

פורסם

זה באמת לא כל כך חכם, מכיוון שהAPI של JAVA כבר מכיל פונקציות שעוזרות. אתה לא צריך לדאוג יותר לדברים הפשוטים, אלא לעבוד יותר על הלוגיקה. תראה מה הצעתי לך בהודעה הקודמת.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים