رفتن به مطلب
بخش Unity به انجمن اضافه شد
  • 0

length یک حرف در string


امیرحسین قاسمی

سوال

سلام،

ما میتونیم length یک حرف از یک استرینگ رو با حلقه فور به دست بیاریم اما اگر استرینگ طولانی باشد دستورات سنگین اجرا میشن.

حالا راهی نیست که بتوانیم سریعا یک کاراکتر مثل(/) length رو داخل یک متن طولانی به دست بیاریم؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 1 ساعت قبل، امیرحسین قاسمی گفته است :

 

از دستور IndexOf استفاده کنید عزیز. در ضمن بهتره که از AsyncTask هم استفاده کنید که اگه متن طولانی بود اپ فریز نشه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 19 بهمن 1399 در 19:25، امیرحسین قاسمی گفته است :

مثلا یک string دارم به این شکل:


dim mystring As string="Answercenter.ir"

الان مثلا حرف A اولین حرف هست

یا مثلا حرف n دومین حرف هست

اگر از دستور length به این شکل استفاده کنیم باید عدد 15 رو برای ما برگردونه یعنی این استرینگ 15 کاراکتر داره.

الان من میخوام بدونم مثلا t توی این استرینگ چندمین حرفه؟ باید برنامه بهم بگه که این این t دهمین حرف هست.

من خودم یک روش برای این کار بدین شکل اختراع کرده ام:


For i= 1 To a.Length
		Dim a As String
		a=mystring.SubString2(i-1,i)
		If a="n" Then
			Msgbox(i,"چندمین حرف است؟n")
            Return
		End If

خب درست هم کار میکنه ولی شما فرض کنید mystring برابر با یک مقاله بزرگ بود و درنتیجه تعداد کاراکتر هاهم خیلی زیاد میشد و حلقه for هم از کار میفتاد و برنامه هنگ میکرد.بنابراین چنین روشی کمی غیراصولی بنظر میرسه.

من میخوام همین کارو بصورت منطقی انجام بدم که حتی اگر mystring برابر با هزاران کاراکتر بود مثلا حرف n سریعا و در یک لحظه توش جست جو بشه و بنویسه این n دومین حرف هست.

منظورمو متوجه شدید؟

باید از IndexOf و LastIndexOf استفاده کنید

کلمه را جستوجو میکنه و عدد بتون میده اولی برای ابدا دومی برای انتها

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، DexterFstone گفته است :

باید از IndexOf و LastIndexOf استفاده کنید

کلمه را جستوجو میکنه و عدد بتون میده اولی برای ابدا دومی برای انتها

خیلی ممنون از شما و آقای شاهپیری

اما اگر بخواهیم از indexof استفاده کنیم و از مثلا حرف d پنج تا داشته باشیم فقط اولیش جستجو میشه مثلا من بخوام بدونم اون یکی d هاچندمین حرفه باید چکار کرد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، امیرحسین قاسمی گفته است :

خیلی ممنون از شما و آقای شاهپیری

اما اگر بخواهیم از indexof استفاده کنیم و از مثلا حرف d پنج تا داشته باشیم فقط اولیش جستجو میشه مثلا من بخوام بدونم اون یکی d هاچندمین حرفه باید چکار کرد؟

باید با substring از اول تا اونجا ک پیدا کرده را حذف کنید و مقدار ایندکس هم ذخیرهکنید بعد دوباره بگید ک جستوجو کنه و همینطور به ترتیب تا هر چند با ک خواستید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 ساعت قبل، امیرحسین قاسمی گفته است :

سلام،

ما میتونیم length یک حرف از یک استرینگ رو با حلقه فور به دست بیاریم اما اگر استرینگ طولانی باشد دستورات سنگین اجرا میشن.

حالا راهی نیست که بتوانیم سریعا یک کاراکتر مثل(/) length رو داخل یک متن طولانی به دست بیاریم؟

length یک حرف از یک استرینگ رو من متوجه نشدم یعنی چی عزیز؟ دقیقا چیکار میخواین بکنید. بامثال توضیح بدید لطفا

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، امیرحسین قاسمی گفته است :

سلام،

ما میتونیم length یک حرف از یک استرینگ رو با حلقه فور به دست بیاریم اما اگر استرینگ طولانی باشد دستورات سنگین اجرا میشن.

حالا راهی نیست که بتوانیم سریعا یک کاراکتر مثل(/) length رو داخل یک متن طولانی به دست بیاریم؟

درست متوجه نشدم ولی فکنم substring به کارتون بیاد من خودم چند جا استفاده کردم برای بدست اوردن کلمه از متن طولانی

کار به این شکل بود ک یک سایت ذخیره میکردم بعد مثلا یجا یک متن متغیر بود و اون با substring به دستش می اوردم و زیاد هم طول نمیکشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در هم اکنون، محمدرضا شاهپیری گفته است :

length یک حرف از یک استرینگ رو من متوجه نشدم یعنی چی عزیز؟ دقیقا چیکار میخواین بکنید. بامثال توضیح بدید لطفا

مثلا یک string دارم به این شکل:

dim mystring As string="Answercenter.ir"

الان مثلا حرف A اولین حرف هست

یا مثلا حرف n دومین حرف هست

اگر از دستور length به این شکل استفاده کنیم باید عدد 15 رو برای ما برگردونه یعنی این استرینگ 15 کاراکتر داره.

الان من میخوام بدونم مثلا t توی این استرینگ چندمین حرفه؟ باید برنامه بهم بگه که این این t دهمین حرف هست.

من خودم یک روش برای این کار بدین شکل اختراع کرده ام:

For i= 1 To a.Length
		Dim a As String
		a=mystring.SubString2(i-1,i)
		If a="n" Then
			Msgbox(i,"چندمین حرف است؟n")
            Return
		End If

خب درست هم کار میکنه ولی شما فرض کنید mystring برابر با یک مقاله بزرگ بود و درنتیجه تعداد کاراکتر هاهم خیلی زیاد میشد و حلقه for هم از کار میفتاد و برنامه هنگ میکرد.بنابراین چنین روشی کمی غیراصولی بنظر میرسه.

من میخوام همین کارو بصورت منطقی انجام بدم که حتی اگر mystring برابر با هزاران کاراکتر بود مثلا حرف n سریعا و در یک لحظه توش جست جو بشه و بنویسه این n دومین حرف هست.

منظورمو متوجه شدید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...