یک تابع C# بنویس که در یک رشتهٔ ورودی همهٔ کامنت‌های یک‌خطی (شروع‌شده با "//") را با استفاده از StringBuilder.Remove حذف کند.

11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:22

0.0

با استفاده از کلاس StringBuilder متن را تغییرپذیر نگه دارید: در حلقه‌ای موقعیت "//" را با IndexOf پیدا کنید، موقعیت پایان خط (مثلاً '\n' یا انتهای رشته) را تعیین کنید و سپس با StringBuilder.Remove بخش موردنظر را حذف کنید؛ این کار را تکرار کنید تا دیگر "//" ای باقی نماند. نکات: برای پیدا کردن ایندکس‌ها می‌توانید از متدهای رشته‌ای روی sb.ToString() استفاده کنید، هنگام تعیین طول حذف به CRLF (\r\n) توجه کنید و پس از هر حذف اندیس‌ها را مجدداً محاسبه کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:22
دسته بندی ها: C# C# for beginner
arman در 201 روز قبل ساعت 06:40

یک نکتهٔ مفید این است که برای حفظ کارایی از StringBuilder.Remove به جای بازسازی کل متن استفاده کنید. در حلقه باید // را با IndexOf پیدا کرده و پایان خط را با \n یا \r\n تشخیص دهید تا طول حذف را مشخص کنید. پس از هر حذف، ارتفاع و ایندکس‌های باقیمانده را مجدداً محاسبه کنید زیرا اندازهٔ متن تغییر می‌کند. همچنین اگر هدف حذف فقط کامنت‌های واقعی است و نباید // داخل رشته‌ها را حذف کند، باید منطق تشخیص رشته را در نظر بگیرید یا روی متن ورودی قبل از عملیات، صرفاً کامنت‌های خارج از رشته را در نظر بگیرید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری