چک کردن وجود حداقل دو کاراکتر در رشته
سلام دوستان
من میخوام توی یه سری رشته، رشته هایی رو که حداقل دو کاراکتر خاص رو دارند پیدا کنم ، مثلا اسم هایی که از حروف a,o,u,e,i حداقل دو حرف رو داشته باشند رو جدا کنم .
برای یک کاراکتر دستور زیر رو نوشتم ولی برای چک کردن کاراکترهای بیشتر نمیدونم چی باید بنویسم ؟
var r =
from nam in lst
where nam.Name.Contains("a") || nam.Name.Contains("e") || nam.Name.Contains("i") ||
nam.Name.Contains("o") || nam.Name.Contains("u")
orderby nam.Name.First() descending
select new { };
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
با تابع Split متنتو تبديل به آرايه كن كاراكتر split هم space قرار بده. يه for بذار از اول تا آخر آرايه رو تك تك روي حروفها ببين كاركترها موجود هستند يا نه. هر كاراكتري كه موجود بود به متغيرت يكي اضافه كن. اگر نتونستي بگو برنامشو برات بذارم.
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
regex :
\b((\w*[aouei]\w*){2,})\b
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
نقل قول:
نوشته شده توسط
ali_habibi1384
با تابع Split متنتو تبديل به آرايه كن كاراكتر split هم space قرار بده. يه for بذار از اول تا آخر آرايه رو تك تك روي حروفها ببين كاركترها موجود هستند يا نه. هر كاراكتري كه موجود بود به متغيرت يكي اضافه كن. اگر نتونستي بگو برنامشو برات بذارم.
ممنون دوست عزیز ،
من رشته هام رو از یه کلاس با یه حلقه for از کاربر می گیریم و توی لیست ذخیره می کنم ، برای تبدیل متن به آرایه این کد رو نوشتم :
Students st = new Students();
string[] str = st.Name.Split(' ');
ولی نمیدونم برای چک کردن منظورتون اینه که برای هر حرف یه if بذارم ؟؟؟
for (int i = 0; i < str.Length; i++)
{
if (str.Contains("a"))
if (str.Contains("e"))
//??
}
متغیر رو چی بذارم ؟
ممنون میشم اگه کدش رو برام بذارید ، میخوام نتیجه رو با دستور linq نشون بدم .
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
نقل قول:
نوشته شده توسط
Saman_12
regex :
\b((\w*[aouei]\w*){2,})\b
متشکرم
میشه یه کم در موردش توضیح بدید .
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
string all = "this a sample text for using in regex matches" ;
string pattern = @"\b((\w*[aouei]\w*){2,})\b";
Regex regex = new Regex(pattern);
foreach (Match match in regex.Matches(all))
{
Console.WriteLine("match: {0}", match.Value);
}
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
نقل قول:
نوشته شده توسط
Saman_12
string all = "this a sample text for using in regex matches" ;
string pattern = @"\b((\w*[aouei]\w*){2,})\b";
Regex regex = new Regex(pattern);
foreach (Match match in regex.Matches(all))
{
Console.WriteLine("match: {0}", match.Value);
}
ممنون از جوابتون.
ولی من رشته ها رو از کاربر می گیرم ، این کد چیزی رو برنگردوند و این پیغام رو میده value cannot be null .
1 ضمیمه
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
این یه مثال واسه استفاده :
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
ممنون دوست عزیز ولی نتونستم از این برنامه استفاده کنم .
من فعلا دارم توی محیط console کار می کنم (تمرین می کنم) ، همونطور که گفتم از کاربر ورودی هام رو می گیرم ،
کد زیر :
class Students
{
public int ID;
public string Name, Family;
}
static void Main(string[] args)
{
Console.Write("Number of Student?");
int num = int.Parse(Console.ReadLine());
List<Students> lst = new List<Students>();
for (int i = 0; i < num; i++)
{
Students st = new Students();
Console.Write("Name?");
st.Name = Console.ReadLine();
Console.Write("Family?");
st.Family = Console.ReadLine();
Console.Write("ID?");
st.ID = int.Parse(Console.ReadLine());
lst.Add(st);
}
}
و میخوام اسم هایی رو که حداقل دو کاراکتر صدادار داخلشون هست رو با دستورات linq برگردونم ، برای یک کارکتر رو با کدی که بالا گذاشتم چک کردم ولی بیشتر رو نمیدونم باید چجوری چک کنم .
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
شاید این کمک کنه :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace Console_Student
{
class Program
{
static void Main(string[] args)
{
Console.Write("Number of Student?");
int num = int.Parse(Console.ReadLine());
List<Students> lst = new List<Students>();
string pattern = @"\b((\w*[aouei]\w*){2,})\b";
Regex regex = new Regex(pattern);
for (int i = 0; i < num; i++)
{
Students st = new Students();
Console.Write("Name?");
st.Name = Console.ReadLine();
Console.Write("Family?");
st.Family = Console.ReadLine();
Console.Write("ID?");
st.ID = int.Parse(Console.ReadLine());
lst.Add(st);
}
foreach (Students st in lst)
{
foreach (Match match in regex.Matches(st.Name))
{
Console.WriteLine("match: {0}", match.Value);
}
}
Console.Read();
}
}
class Students
{
public int ID;
public string Name, Family;
}
}
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
نقل قول:
نوشته شده توسط
yekta99
ممنون دوست عزیز ،
من رشته هام رو از یه کلاس با یه حلقه for از کاربر می گیریم و توی لیست ذخیره می کنم ، برای تبدیل متن به آرایه این کد رو نوشتم :
Students st = new Students();
string[] str = st.Name.Split(' ');
ولی نمیدونم برای چک کردن منظورتون اینه که برای هر حرف یه if بذارم ؟؟؟
for (int i = 0; i < str.Length; i++)
{
if (str.Contains("a"))
if (str.Contains("e"))
//??
}
متغیر رو چی بذارم ؟
ممنون میشم اگه کدش رو برام بذارید ، میخوام نتیجه رو با دستور linq نشون بدم .
نه دوست عزيز برعكس فهميدي. حلقه for اينجوري ميشه:
کد HTML:
int k=0;
for ( int i=0;i<str.length;i++)
{
for (int j=0,k=0;j<str[i].length;j++)
if ("aeuoi".contains(str[i])) k++;
if ( k>1) يعني اين كلمه بيشتر از دوبار از اون حرفاي پركاربرد داره و بقيه عملياتت
}
نقل قول: چک کردن وجود حداقل دو کاراکتر در رشته
با LINQ به اینصورت میتونی جواب بگیری int count = textBox1.Text.Count(i => i.ToString().ToLower() == "a" || i.ToString().ToLower() == "e" || i.ToString().ToLower() == "i" || i.ToString().ToLower() == "o" || i.ToString().ToLower() == "u");
if (count >= 2)
{
// ...
}