স্ট্রিংবিল্ডারে নিউলাইন চরিত্র


89

আপনি কীভাবে একটি নতুন লাইন (\ n \ r) অক্ষর যুক্ত করবেন StringBuilder?


17
এটি কোনও সাধারণ ওএসের অধীনে কোনও নতুন লাইন নয়। উইন্ডোজ হ'ল \ r \ n, ম্যাকটি \ r, ইউনিক্স এবং লিনাক্স \ n।
বেন ভয়েগট

4
পেডেন্টালি 'নিউলাইন' সর্বদা '\ n' থাকে। এটি ছিল মেকানিকাল টেলি-টাইপের প্ল্যাটেন শিফট চরিত্র। 'ক্যারেজ রিটার্ন' সর্বদা '\ r' হয়। এটি টেলি টাইপগুলিতে ক্যারেজ রিটার্ন চরিত্র ছিল। প্রতিটি অপারেটিং সিস্টেম তাদের আলাদাভাবে ব্যাখ্যা করতে পারে। ইউনিক্স / লিনাক্সে রিটার্নটি সাধারণত ব্যবহৃত হয় না কারণ এটি অপ্রয়োজনীয় কারণ এটি আর কোনও যান্ত্রিক ব্যবস্থা নেই।
জে

6
@ জায়ে: কেবলমাত্র প্লাটেন্ট শিফট সৃষ্টিকারী একটি চরিত্রকে নতুন লাইন হিসাবে উল্লেখ করা হয়নি, তবে লাইনফিড।
বেন ভয়েগট

উত্তর:


126

আমি পরিবেশ.নিউলাইন সম্পত্তি ব্যবহার করব

কিছুটা এইরকম:

StringBuilder sb = new StringBuilder();
sb.AppendFormat("Foo{0}Bar", Environment.NewLine);
string s = sb.ToString();

বা

StringBuilder sb = new StringBuilder();
sb.Append("Foo");
sb.Append("Foo2");
sb.Append(Environment.NewLine);
sb.Append("Bar");
string s = sb.ToString();

আপনি যদি প্রতিটি সংযোজনের পরে একটি নতুন লাইন পেতে চান, আপনি বেন ভয়েগ্টের উত্তরটি একবার দেখতে পারেন


4
আপনি যেখানে চান সেখানে নতুন লাইন পেতে অ্যাপেন্ড এবং অ্যাপেন্ডলাইন মিশ্রিত করা সম্ভব, প্রতিটি অ্যাপেন্ডের পরে নয়। এছাড়াও, আমি অ্যাপেন্ডলাইনটির শূন্য-আর্গুমেন্ট সংস্করণটির সাথে লিঙ্ক করেছি যা নিউলাইন ক্রম ছাড়া কিছুই যুক্ত করে না।
বেন ভয়েগট

4
স্ট্রিংবিল্ডার.এপেন্ডেলাইন () sb. Append (পরিবেশ.নিউইলাইন) হিসাবে একই কাজ করে; এটি আরও সুন্দর আমি বলব ( এমএসডিএন.মাইক্রোসফট /en-us/library/ebk18257.aspx )
মুল্কি

4
সচেতন হন যে ইউনিক্স সিস্টেমে এনভায়রনমেন্ট.নিউলাইন "\ r \ n" নয়, তাই আপনি যদি "\ r \ n" হিসাবে নির্দিষ্ট কিছু প্রয়োগ করছেন তবে আপনাকে অবশ্যই অ্যাপেন্ডলাইন কল করার পরিবর্তে কোডে লিখতে হবে।
hultqvist

4
@ হুল্টকভিস্ট: স্ট্রিম রাইটারে ব্যবহার AppendLineকরা আরও ভাল , তবে এটি নির্দিষ্টরেখার জন্য StreamWriterকেবলমাত্র নয় বরং নতুনরেখা ক্রমটি সন্নিবেশ করবে Environment.NewLine। উদাহরণস্বরূপ, আপনি যদি একটি এসএমটিপি সংযোগে আবদ্ধ স্ট্রিমটি খোলেন তবে আপনি এর NewLineসম্পত্তিটি "\ r \ n" এ সেট করতে পারেন এবং তারপরে আপনি ইউনিক্সেও বৈধ এসএমটিপি হ্যান্ডশেক পাবেন।
বেন ভয়েগট

4
অ্যাপেন্ডলাইন এই পদ্ধতির চেয়ে সহজ।
আন্তোনিও মানো




5

স্ট্রিংবিল্ডারের অ্যাপেন্ড লাইন অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করুন:

StringBuilder sb = new StringBuilder();
sb.AppendLine("First line");
sb.AppendLine("Second line");
sb.AppendLine("Third line");

আউটপুট

First line
Second line
Third line


1

একাধিক লাইনের জন্য আমি খুঁজে পেতে সবচেয়ে ভাল উপায় এটি করা:

        IEnumerable<string> lines = new List<string>
        {
            string.Format("{{ line with formatting... {0} }}", id),
            "line 2",
            "line 3"
        };
        StringBuilder sb = new StringBuilder();
        foreach(var line in lines)
            sb.AppendLine(line);

এইভাবে আপনাকে পরিবেশের সাথে পর্দা বিশৃঙ্খল করতে হবে না e নিউলাইন বা অ্যাপেন্ডলাইন () একাধিকবার পুনরাবৃত্তি হয়েছে। এটি টাইপ করা মনে রাখার চেয়ে কম ত্রুটিযুক্ত প্রবণতাও হবে।


1

স্ট্রিংবিল্ডার শ্রেণীর জন্য কেবল একটি এক্সটেনশন তৈরি করুন:

Public Module Extensions
    <Extension()>
    Public Sub AppendFormatWithNewLine(ByRef sb As System.Text.StringBuilder, ByVal format As String, ParamArray values() As Object)
        sb.AppendLine(String.Format(format, values))
    End Sub
End Module
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.