یک تابع C# بنویس که در یک رشتهٔ ورودی همهٔ کامنتهای یکخطی (شروعشده با "//") را با استفاده از StringBuilder.Remove حذف کند.
11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:22 0.0
با استفاده از کلاس StringBuilder متن را تغییرپذیر نگه دارید: در حلقهای موقعیت "//" را با IndexOf پیدا کنید، موقعیت پایان خط (مثلاً '\n' یا انتهای رشته) را تعیین کنید و سپس با StringBuilder.Remove بخش موردنظر را حذف کنید؛ این کار را تکرار کنید تا دیگر "//" ای باقی نماند. نکات: برای پیدا کردن ایندکسها میتوانید از متدهای رشتهای روی sb.ToString() استفاده کنید، هنگام تعیین طول حذف به CRLF (\r\n) توجه کنید و پس از هر حذف اندیسها را مجدداً محاسبه کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
یک نکتهٔ مفید این است که برای حفظ کارایی از StringBuilder.Remove به جای بازسازی کل متن استفاده کنید. در حلقه باید // را با IndexOf پیدا کرده و پایان خط را با \n یا \r\n تشخیص دهید تا طول حذف را مشخص کنید. پس از هر حذف، ارتفاع و ایندکسهای باقیمانده را مجدداً محاسبه کنید زیرا اندازهٔ متن تغییر میکند. همچنین اگر هدف حذف فقط کامنتهای واقعی است و نباید // داخل رشتهها را حذف کند، باید منطق تشخیص رشته را در نظر بگیرید یا روی متن ورودی قبل از عملیات، صرفاً کامنتهای خارج از رشته را در نظر بگیرید.
گزارش