چگونه می توان رشته ها را در C# مانند Humanize Ruby انسانی کرد؟

در C#، یک روش داخلی معادل روبی وجود ندارد humanize
برای تبدیل رشته ها به یک فرمت طبیعی تر ، اما می توانید توابعی را برای دستیابی به این کار به راحتی ایجاد کنید. در این مقاله ، ما چگونگی تبدیل رشته ها را در حالی که دو سناریوی ارائه شده در درخواست شما را دنبال می کنیم ، بررسی خواهیم کرد: تغییر سرمایه و قالب بندی موارد رشته برای ظاهر دوستانه تر انسان.
درک روند انسانی سازی
هنگامی که ما در مورد “انسان سازی” یک رشته بحث می کنیم ، ما معمولاً به تحول متن اشاره می کنیم که خواندن یا درک انسان را برای انسان آسان می کند. این می تواند شامل تنظیم سرمایه ، تغییر پرونده یا قالب بندی متن باشد تا جلا تر و خواندنی تر به نظر برسد. برخلاف روبی ، جایی که humanize
عملکرد از تحولات به خوبی تعریف شده استفاده می کند ، C# ما را ملزم می کند که روشهای خودمان را بسازیم.
اجرای یک انسان ساز ساده در C#
در اینجا دو روش اصلی که ما پیاده سازی خواهیم کرد:
- همه کلمات را به جز حالت اول کوچک کنیداین روش “Lorem Lips” و “به” Lorem Lips “را تغییر می دهد.
- بعد از اولین کلمه از هر کلمه استفاده کنیداین روش “Lorem Lips” و “به” Lorem Lips “را تغییر می دهد.
1. حروف کوچک همه کلمات به جز حالت اول
برای دستیابی به این تحول ، می توانیم روشی به نام ایجاد کنیم HumanizeLower
بشر در زیر مثال کد نشان می دهد که نحوه اجرای این کار را نشان می دهد:
using System;
using System.Globalization;
class Program
{
static void Main()
{
string input = "Lorem Lipsum Et";
string output = HumanizeLower(input);
Console.WriteLine(output); // Output: Lorem lipsum et
}
static string HumanizeLower(string input)
{
var words = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// Return the first word in its original case and rest in lowercase.
return words[0] + " " + string.Join(" ", words[1..].Select(w => w.ToLower()));
}
}
2. بعد از اولین کلمه از هر کلمه استفاده کنید
در مرحله بعد ، ما روشی به نام را پیاده سازی خواهیم کرد HumanizeCapitalize
، که از هر کلمه رشته پس از اولین استفاده می کند:
using System;
using System.Globalization;
class Program
{
static void Main()
{
string input = "Lorem lipsum et";
string output = HumanizeCapitalize(input);
Console.WriteLine(output); // Output: Lorem Lipsum Et
}
static string HumanizeCapitalize(string input)
{
var words = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// Capitalize the first word, then capitalize the rest.
return char.ToUpper(words[0][0]) + words[0].Substring(1) + " " + string.Join(" ", words[1..].Select(w => char.ToUpper(w[0]) + w.Substring(1)));
}
}
از موارد و خروجی های مثال استفاده کنید
بیایید به خروجی های دو روش خود بپردازیم تا تأیید کنیم که آنها مطابق انتظار کار می کنند:
- برای ورودی “لب های لرم و”، با استفاده از
HumanizeLower
بازده “لب های لرم و”بشر - برای ورودی “لب های لرم و”، با استفاده از
HumanizeCapitalize
بازده “لب های لرم و”بشر
این نشان می دهد که چگونه می توانیم روشهای دستکاری رشته خود را در C# ایجاد کنیم که به نتایج مشابهی با روبی دست می یابیم humanize
بشر در حالی که این روش ها ساده هستند ، می توان آنها را سازگار و گسترش داد تا نیازهای پیچیده تری را برآورده سازد.
سوالات متداول
آیا می توانم این توابع را برای رسیدگی به نگارشی گسترش دهم؟
بله ، شما می توانید قبل از استفاده از تحولات ، منطق دستکاری رشته را برای رسیدگی به نگارشی تغییر دهید. این کار را می توان با استفاده از Trim
روش قبل از تقسیم کلمات.
اگر بخواهم چندین فضاهای بین کلمات را اداره کنم ، چه می شود؟
می توانید استفاده کنید Regex
قبل از پردازش رشته ، چندین فضای را با یک فضای واحد جایگزین کنید تا از ورودی تمیز اطمینان حاصل شود. در اینجا یک مثال با استفاده از Regex
:
using System.Text.RegularExpressions;
string cleanInput = Regex.Replace(input, "\s+", " ").Trim();
اجرای این روشها توانایی شما در قالب بندی ورودی های رشته در C#را افزایش می دهد. احساس راحتی کنید که بر اساس نیازهای خاص خود ، مانند اضافه کردن چک برای موارد لبه یا قوانین قالب بندی اضافی ، عملکرد خود را گسترش دهید.