.NET এ আমি উভয় \r
বা \n
স্ট্রিং লিটারেল সরবরাহ করতে পারি , তবে Environment.NewLine
স্ট্যাটিক সম্পত্তির মতো "নতুন লাইন" বিশেষ চরিত্রের মতো কিছু সন্নিবেশ করার একটি উপায় আছে ?
.NET এ আমি উভয় \r
বা \n
স্ট্রিং লিটারেল সরবরাহ করতে পারি , তবে Environment.NewLine
স্ট্যাটিক সম্পত্তির মতো "নতুন লাইন" বিশেষ চরিত্রের মতো কিছু সন্নিবেশ করার একটি উপায় আছে ?
উত্তর:
ভাল, সহজ বিকল্পগুলি হ'ল:
string.Format
:
string x = string.Format("first line{0}second line", Environment.NewLine);
স্ট্রিং সংযোগ:
string x = "first line" + Environment.NewLine + "second line";
স্ট্রিং অন্তরঙ্গকরণ (সি # 6 এবং উপরে):
string x = $"first line{Environment.NewLine}second line";
আপনি যে কোনও জায়গায় \ n ব্যবহার করতে পারেন এবং প্রতিস্থাপন করতে পারেন:
string x = "first line\nsecond line\nthird line".Replace("\n",
Environment.NewLine);
নোট করুন যে আপনি এটিকে একটি স্ট্রিংকে ধ্রুবক করতে পারবেন না , কারণ এর মানটি Environment.NewLine
কেবলমাত্র মৃত্যুর সময় কার্যকর হবে।
Environment.NewLine
? একেবারে বিপরীতে, এটি ব্যবহার করা ভাল অভ্যাস
আপনি যদি একটি কনস্ট্রিং স্ট্রিং চান যাতে এতে পরিবেশ থাকে। নতুন লাইনে আপনি এই জাতীয় কিছু করতে পারেন:
const string stringWithNewLine =
@"first line
second line
third line";
যেহেতু এটি একটি নিয়মিত স্ট্রিংয়ে এটি সংকলন সময়ে করা হয় তাই এটি একটি নতুন লাইনের সংকলকটির ব্যাখ্যা iler আমি এই আচরণটি ব্যাখ্যা করার মতো কোনও রেফারেন্স খুঁজে পাই না বলে মনে করি তবে, আমি প্রমাণ করতে পারি এটি এটি যেমন ইচ্ছা তেমন কাজ করে। আমি এই কোডটি উভয় উইন্ডোজ এবং উবুন্টুতে (মনোো সহ) সংকলিত করেছি তারপরে বিচ্ছিন্ন করে ফেললাম এবং এগুলি ফলাফল:
আপনি দেখতে পাচ্ছেন, উইন্ডোজে নিউলাইনগুলি \ r \ n হিসাবে এবং উবুন্টুতে \ n হিসাবে ব্যাখ্যা করা হয়
var sb = new StringBuilder();
sb.Append(first);
sb.AppendLine(); // which is equal to Append(Environment.NewLine);
sb.Append(second);
return sb.ToString();
first + Environment.NewLine + second
যেটি আরও দক্ষ এবং (আইএমও) পড়া সহজ?
String.Format
এটি একবারে 1 টি স্ট্রিং তৈরি করবে (তবে এটি সংস্কৃতি নির্দিষ্ট কনটেন্টেশন ইত্যাদির কারণে এটি অভ্যন্তরীণভাবে কিছুটা ধীরে ধীরে), যখন স্ট্রিং কনটেন্টেশন - 1 ফলাফল + 1 অস্থায়ী, ঠিক?
String.Concatenate
, যা সরাসরি মাত্র একটি আউটপুট স্ট্রিং তৈরি করে (আইআইআরসি, যদি স্ট্রিংগুলি আক্ষরিক হয় তবে সংকলকটিতে সংক্ষিপ্তকরণ করা হয়।
"a"+b+"c"+d
পারফরম্যান্সের দ্বারা একাধিক তবে এক-লাইন স্ট্রিং কনকেনটেশন ( ইত্যাদি) এককটির সমান? বা ঠিক রূপান্তরিত String.Concatenate(a,b,c,d,etc)
, ডান?
string.Format
মন্তব্যে কোনও পরামর্শ দিইনি । স্ট্রিং কনটেনটেশন কোনও অস্থায়ী স্ট্রিং উত্পাদন করতে পারে না, কারণ সংকলক কল করবে string.Concat(first, Environment.NewLine, second)
।
এনভায়রনমেন্টের সুবিধাজনক স্থাপনের আরও একটি উপায় format ফর্ম্যাট স্ট্রিংয়ে নিউলাইন। স্ট্রিং এক্সটেনশন পদ্ধতিটি তৈরি করা ধারণাটি যা স্ট্রিংকে যথারীতি ফর্ম্যাট করে তবে {nl text পাঠ্য এনভায়রনমেন্টের সাথে প্রতিস্থাপন করে। নিউলাইন
ব্যবহার
" X={0} {nl} Y={1}{nl} X+Y={2}".FormatIt(1, 2, 1+2);
gives:
X=1
Y=2
X+Y=3
কোড
///<summary>
/// Use "string".FormatIt(...) instead of string.Format("string, ...)
/// Use {nl} in text to insert Environment.NewLine
///</summary>
///<exception cref="ArgumentNullException">If format is null</exception>
[StringFormatMethod("format")]
public static string FormatIt(this string format, params object[] args)
{
if (format == null) throw new ArgumentNullException("format");
return string.Format(format.Replace("{nl}", Environment.NewLine), args);
}
বিঃদ্রঃ
আপনি যদি পুনঃশার্পারটি আপনার পরামিতিগুলি হাইলাইট করতে চান তবে উপরের পদ্ধতিতে অ্যাট্রিবিউট যুক্ত করুন
[StringFormatMethod ( "বিন্যাস")]
এই প্রয়োগটি কেবল স্ট্রিং.ফর্ম্যাটের চেয়ে স্পষ্টতই কম দক্ষ
হতে পারে যে কেউ, এই প্রশ্নে আগ্রহী পরবর্তী প্রশ্নেও আগ্রহী হবে: সি # তে স্ট্রিং বিন্যাসকরণ
string myText =
@"<div class=""firstLine""></div>
<div class=""secondLine""></div>
<div class=""thirdLine""></div>";
যে এটা না:
string myText =
@"<div class=\"firstLine\"></div>
<div class=\"secondLine\"></div>
<div class=\"thirdLine\"></div>";
নতুন। নেট সংস্করণগুলি আপনাকে আক্ষরিকের সামনে ব্যবহার করতে দেয় যা আপনাকে নীচের মত ভেরিয়েবলগুলি ব্যবহার করতে দেয়:
var x = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
যদি আপনি সত্যিই একটি ধ্রুবক হিসাবে নতুন লাইন স্ট্রিং চান, তবে আপনি এটি করতে পারেন:
public readonly string myVar = Environment.NewLine;
সি # তে পঠনযোগ্য কী-ওয়ার্ডের ব্যবহারকারীর অর্থ এই চলকটি একবারে বরাদ্দ করা যেতে পারে। আপনি এখানে ডকুমেন্টেশন খুঁজে পেতে পারেন । এটি একটি ধ্রুবক ভেরিয়েবলের ঘোষণাকে মঞ্জুরি দেয় যার প্রয়োগের সময় পর্যন্ত তার মান জানা যায় না।
আপনি যদি ওয়েব অ্যাপ্লিকেশন নিয়ে কাজ করছেন তবে আপনি এটি চেষ্টা করতে পারেন।
StringBuilder sb = new StringBuilder();
sb.AppendLine("Some text with line one");
sb.AppendLine("Some mpre text with line two");
MyLabel.Text = sb.ToString().Replace(Environment.NewLine, "<br />")
যদি আমি প্রশ্নটি বুঝতে পারি: দম্পতিরা "\r\n"
নীচে একটি নতুন লাইন পেতে textbox
। আমার উদাহরণ কাজ করেছে -
string s1 = comboBox1.Text; // s1 is the variable assigned to box 1, etc.
string s2 = comboBox2.Text;
string both = s1 + "\r\n" + s2;
textBox1.Text = both;
একটা প্রচলিত উত্তর হতে পারে s1
s2
মধ্যে text box
ব্যবহার নির্ধারণ করা টাইপ শৈলী।