در C# تابعی بنویسید که در یک رشتهی ورودی موقعیت اولین وقوع یک کلمهی کلیدی مشخص را با استفاده از String.IndexOf (با بیتوجهی به حروف بزرگ/کوچک) پیدا کند و در صورت عدم وجود مقدار -1 بازگرداند.
16.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:43 0.0
برای حل این مسئله میتوانید از متد string.IndexOf(keyword, StringComparison.OrdinalIgnoreCase) در داتنت استفاده کنید؛ قبل از جستجو ورودیها را بررسی (null یا خالی) کنید و نتیجهی IndexOf را مستقیماً بازگردانید. در زمینههای مختلف مانند کامپایلر/اینترپرتر میتوان از این روش برای یافتن توکنها، در بازیسازی (Unity) برای پیدا کردن دستورهای چت و در وبدولوپمنت (ASP.NET) برای جستجوی پارامترها استفاده کرد؛ اگر لازم است مطمئن شوید که کلمه بهصورت کامل پیدا شده، میتوانید پس از یافتن موقعیت کاراکترهای قبل و بعد را چک یا از Regex برای مرزبندی واژهها کمک بگیرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای این کار میتوانید از string.IndexOf(keyword, StringComparison.OrdinalIgnoreCase) استفاده کرده و قبل از جستجو ورودیها را برای null یا رشتهٔ خالی بررسی کنید تا از استثنا جلوگیری شود. اگر دنبال تطابق دقیقِ کلمهٔ کامل هستید، پس از یافتن موقعیت مرزهای پیش و پس را بررسی کنید یا از Regex با \b کمک بگیرید چون IndexOf صرفاً تطابق زیررشته را مییابد. همچنین توجه داشته باشید که OrdinalIgnoreCase سرعت و ثبات بالایی دارد ولی در مواقعی که حساس به فرهنگ (culture) هستید ممکن است بخواهید از CurrentCultureIgnoreCase استفاده کنید. در صورت پیدا نشدن مقدار -1 بازگردانید و در صورت نیاز ورودی را قبل از جستجو با Trim اصلاح کنید.
گزارش