PDA

View Full Version : سوال: جدا کردن بخشی از string



sajadzare
جمعه 18 بهمن 1392, 15:48 عصر
سلام

یه رشته داریم مثل رشته زیر:

1-شرکت سرمایه گذاری مهرگستر نوین-->2-شرکت تعاونی پارس خزر

که اولی فرستنده هست و دومی گیرنده ... من میخوام این متن رو بگیرم و تبدیلش کنم به دو تا متن مثل زیر

فرستنده : شرکت سرمایه گذاری مهرگستر نوین
گیرنده : شرکت تعاونی پارس خزر

لطفا کمک کنید

مهران موسوی
جمعه 18 بهمن 1392, 16:56 عصر
مثلا میتونید از روش زیر استفاده کنید :چشمک:


string value = "شرکت سرمایه گذاری مهرگستر نوین-->شرکت تعاونی پارس خزر";

var parts = value.Split(new string[] { "<--" }, StringSplitOptions.None);

for (int i = 0; i < parts.Length; i++)
{
Console.WriteLine(parts[i]);
}

sajadzare
جمعه 18 بهمن 1392, 17:44 عصر
دوستان مشکل حل شد. برای اطلاع دوستان کلاس مربوط به این کار رو براتون میذارم از تابع های between و before و after استفاده کنید


static class SubstringExtensions { /// <summary> /// Get string value between [first] a and [last] b. /// </summary> public static string Between(this string value, string a, string b) { int posA = value.IndexOf(a); int posB = value.LastIndexOf(b); if (posA == -1) { return ""; } if (posB == -1) { return ""; } int adjustedPosA = posA + a.Length; if (adjustedPosA >= posB) { return ""; } return value.Substring(adjustedPosA, posB - adjustedPosA); } /// <summary> /// Get string value after [first] a. /// </summary> public static string Before(this string value, string a) { int posA = value.IndexOf(a); if (posA == -1) { return ""; } return value.Substring(0, posA); } /// <summary> /// Get string value after [last] a. /// </summary> public static string After(this string value, string a) { int posA = value.LastIndexOf(a); if (posA == -1) { return ""; } int adjustedPosA = posA + a.Length; if (adjustedPosA >= value.Length) { return ""; } return value.Substring(adjustedPosA); } }


برای مثالی که من زدم کد زیر رو به کار ببرید


string mainstring="1-شرکت سرمایه گذاری مهرگستر نوین-->2-شرکت تعاونی پارس خزر";
string sender="فرستنده"+":"+mainstring.Between("1-","-->2-");
string reciever="گیرنده"+":"+mainstring.After("-->2-");