آرگومان های خط فرمان – انجمن DEV

این اصلی متد می تواند آرگومان های رشته ای را از خط فرمان دریافت کند. شاید قبلاً متوجه هدر غیرعادی شده باشید اصلی روشی که دارای پارامتر است ارگ از رشته[] نوع واضح است که ارگ آرایه ای از رشته ها است. را اصلی متد دقیقاً مانند یک متد معمولی با یک پارامتر است. شما می توانید یک متد معمولی را با ارسال پارامترهای واقعی فراخوانی کنید. آیا می توانید استدلال ها را به اصلی? بله، البته که شما می توانید. در مثال های زیر، اصلی روش در کلاس TestMain با روشی در فراخوانی می شود آ.
آ اصلی روش فقط یک روش معمولی است. علاوه بر این، می توانید آرگومان ها را از خط فرمان ارسال کنید.
انتقال رشته ها به روش اصلی
می توانید رشته ها را به a ارسال کنید اصلی زمانی که برنامه را اجرا می کنید از خط فرمان استفاده کنید. برای مثال خط فرمان زیر برنامه را شروع می کند TestMain با سه رشته: arg0، arg1، و arg2:
java TestMain arg0 arg1 arg2
arg0، arg1، و **arg2 **رشتههایی هستند، اما لازم نیست در خط فرمان در دو گیومه ظاهر شوند. رشته ها با فاصله از هم جدا می شوند. رشته ای که حاوی یک فاصله است باید در دو گیومه محصور شود. خط فرمان زیر را در نظر بگیرید:
java TestMain "First num" alpha 53
برنامه را با سه رشته شروع می کند: شماره اول، آلفا، و 53. از آنجا که شماره اول یک رشته است، آن را در دو گیومه محصور شده است. توجه داشته باشید که 53 در واقع به عنوان یک رشته در نظر گرفته می شود. شما می توانید استفاده کنید “53” بجای 53 در خط فرمان
وقتی که اصلی متد فراخوانی می شود، مفسر جاوا آرایه ای ایجاد می کند تا آرگومان های خط فرمان را نگه دارد و ارجاع آرایه را به آن ارسال کند. ارگ. به عنوان مثال، اگر برنامه ای را با n آرگومان ها، مفسر جاوا آرایه ای مانند این ایجاد می کند:
args = new String[n];
سپس مفسر جاوا عبور می کند ارگ برای فراخوانی اصلی روش.
اگر برنامه را بدون هیچ رشته ای اجرا کنید، آرایه با ایجاد می شود رشته جدید[0]. در این حالت آرایه با طول خالی است 0. ارگ ارجاع به این آرایه خالی از این رو، ارگ نیست خالی، ولی args.length است 0.
مطالعه موردی: ماشین حساب
فرض کنید میخواهید برنامهای ایجاد کنید که عملیات حسابی را روی اعداد صحیح انجام دهد. برنامه یک عبارت را در یک آرگومان رشته ای دریافت می کند. عبارت از یک عدد صحیح و یک عملگر و یک عدد صحیح دیگر تشکیل شده است. به عنوان مثال، برای اضافه کردن دو عدد صحیح، از این دستور استفاده کنید:
java Calculator 2 + 3
برنامه خروجی زیر را نمایش می دهد:
2 + 3 = 5
شکل زیر نمونه اجرای برنامه را نشان می دهد.
رشته های ارسال شده به برنامه اصلی در آن ذخیره می شوند ارگ، که آرایه ای از رشته ها است. اولین رشته در ذخیره می شود ارگ[0]، و args.length تعداد رشته های ارسال شده است.
در اینجا مراحل این برنامه آمده است:
- استفاده کنید args.length برای تعیین اینکه آیا عبارت به عنوان سه آرگومان در خط فرمان ارائه شده است یا خیر. اگر نه، برنامه را با استفاده از آن خاتمه دهید System.exit (1).
- یک عملیات حسابی باینری روی عملوندها انجام دهید ارگ[0] و ارگ[2] با استفاده از اپراتور در ارگ[1].
برنامه در زیر نشان داده شده است:
Integer.parseInt(args[0]) (خط 17) یک رشته دیجیتال را به یک عدد صحیح تبدیل می کند. رشته باید از ارقام تشکیل شده باشد. در غیر این صورت، برنامه به طور غیرعادی خاتمه می یابد.
ما استفاده کردیم . نماد ضرب، نه نماد مشترک *****. دلیل این امر این است که علامت ***** به تمام فایل های دایرکتوری فعلی اشاره می کند که در خط فرمان استفاده می شود. برنامه زیر تمامی فایل های دایرکتوری فعلی را هنگام صدور نمایش می دهد
فرمان *تست جاوا **:
public class Test {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++)
System.out.println(args[i]);
}
}
برای دور زدن این مشکل، باید از یک نماد متفاوت برای عملگر ضرب استفاده کنیم.