PDA

View Full Version : سوال: جدا کردن یک string به صورت خاص



hadiroosta
دوشنبه 17 فروردین 1394, 02:51 صبح
سلام

من می خواهم یک string را مثلا : "به نام خدا " = name به صورت یک ارایه {"ا","خد","م","نا","به"} جدا کنم چطور میتونم این کار را انجام دهم ؟

am_al_59
دوشنبه 17 فروردین 1394, 03:20 صبح
فکر میکنم منظور شما تقسیم رشته بر اساس کاراکترهای چسبیده به هم باشه
برای این کار دوتا راه داری
راه اول اینکه شما از دو حرف اول رشته شروع کنی بریزی تو یک متغیر و اونو بصورت Bitmap با رنگ متن سیاه روی زمینه transparent گرافیکیش کنی و ببینی آیا تصویر حاصل پیوسته هست یانه که کدهاش توی اینترنت هست میتونی جستجو کنی (مثل پردازش تصاویر) و ادامه مطلب

راه دوم که به نظر من راه عاقلانه تری هست اینه که شما کل کاراکترهای چسبان فارسی رو در یک آرایه ذخیره کنی
اینطوری رشته رو برای وجود این کاراکتر ها بطور پشت سر هم جستجو می کنی و در نهایت عملیات تفکیک رو همونطور که میخوای می تونی انجام بدی

mandanim
دوشنبه 17 فروردین 1394, 06:15 صبح
private void Form1_Load(object sender, EventArgs e)
{
string[] str= SplitWhitespace("به نام خدا");
}
public static string[] SplitWhitespace(string input)
{
char[] whitespace = new char[] { ' ', '\t' };
return input.Split(whitespace);
}

am_al_59
دوشنبه 17 فروردین 1394, 09:13 صبح
من معتقدم منظور ایشون جداسازی به صورت خاص (کاراکتر های چسبان) هست

این کد که خلاصه شده کد شما هست و باعث جداسازی کلمه به کلمه میشه کارشونو راه نمیندازه

("به نام خدا").Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

البته در کد بالا جسارت کردم و کاراکتر horizental tab که شما چک کرده بودین (\t)و بسیار کار بجایی هم هست رو حذف کردم که ساده تر بشه
در کد بالا "نام" در یک رشته قرار میگیره اما در مثال ایشون کلمه نام خودش تفکیک شده به "نا" و "م"

این کد هم که با عث جداسازی کاراکتر به کاراکتر میشه


("به نام خدا").Replace(" ", "").ToArray<char>();

اما اینم منظور ایشون رو تأمین نمیکنه چون عبارت خدا رو به صورت "خ" و "د" و "ا" تفکیک میکنه اما در مثال بصورت "خد" و "ا" تفکیک شده