PDA

View Full Version : سوال: حذف کاراکترهای خاص



f_g1348
دوشنبه 19 تیر 1391, 11:41 صبح
با سلام
دوستان من می خواهم یکسری کاراکترهای خاص را از متن ورودی پاک کنم و به جای آن از . استفاده شود
کاراکترها :
{
}
]
[
@
#
$
%
^
*
+
-
/
...
!
؟
>
<
"
:
;
'
،
کلیه اعداد
در جاوا کلاسی برای این کار موجود است آیا C#‎‎‎ هم چنین کلاسی دارد یا باید خودمان بنویسیم ؟

mp_mp353
دوشنبه 19 تیر 1391, 13:54 عصر
با سلام میتونی برای هر کاراکتر از متد زیر استفاده کنید.
string s = "3mn@mn";
s=s.Replace('@', '.');
Console.Write(s);
Console.ReadKey();

mp_mp353
دوشنبه 19 تیر 1391, 14:02 عصر
خودت هم میتونی ان کار رو انجام بدی به شکل زیر توجه کن:
class Program
{
public string chenge_string(string src,char[] src_char, char dist_char)
{
int i=0;
while (i < src_char.Length)
{
src = src.Replace(src_char[i], dist_char);
i++;
}

return src;
}
static void Main(string[] args)
{
string s = "3mn@mn{mnjs}";
char[] char_src = { '{', '}', '@' };
Program p = new Program();
s = p.chenge_string(s, char_src, '.');
Console.Write(s);
Console.ReadKey();
}
}

f_g1348
دوشنبه 19 تیر 1391, 16:53 عصر
فقط . . . را چطور از . تشخیص دهم ؟

mp_mp353
دوشنبه 19 تیر 1391, 18:28 عصر
منظورت رو نمی فهمم دوست من میشه بشتر توضیح بدی؟

ahmadreza517
دوشنبه 19 تیر 1391, 20:28 عصر
فقط . . . را چطور از . تشخیص دهم ؟

به نام تنها برنامه نویس هستی
سلام ,
از عبارات منظم استفاده کنید. اموزش و نمونه کد در net کمک بگیرید.

f_g1348
سه شنبه 20 تیر 1391, 09:02 صبح
دوستان من برای حذف کاراکترهای مشخص شده از کد زیر استفاده می کنم ولی در هنگام اجرا درست کار نمی کند

char[] char_src = { '{', '}', '@',']','[','!','?','؟','#','&','/','*','-','+','(',')','،','؛','<','>' };
int i = 0;
while (i < txt_Orig.Text.Length)
{
txt_Orig.Text = txt_Orig.Text.Replace(char_src[i], '.');
i++;
}
کسی می تونه راهنمایی کنه ؟

f_g1348
سه شنبه 20 تیر 1391, 09:51 صبح
کسی می تونه راهنمایی کنه ؟

mp_mp353
سه شنبه 20 تیر 1391, 12:58 عصر
خوب دوست من با این کار کن مشکلت حل میشه
char[] char_src = { '{', '}', '@', ']', '[', '!', '?', '؟', '#', '&', '/', '*', '-', '+', '(', ')', '،', '؛', '<', '>' };

int i = 0;

while (i < char_src.Length)
{

textBox1.Text = textBox1.Text.Replace(char_src[i], '.');

i++;

}

mp_mp353
سه شنبه 20 تیر 1391, 13:02 عصر
مشکل جایی بود که شما از txt_Orig.Text.Length استفاده میکردید که این علاوه بر خطا در حال اجرا به شما جواب نا درست هم میده!! و این در حالی است که کاراکتر های خاص شما در آرایه char_src قرار دارند و قتی شما میخواهید که برای هر خانه از اون (char_src) عمل تغییر مقدار انجام بشه باید طول همان آرایه char_src را در شرط حلقه قرار دهید یعنی while (i < char_src.Length)