সি # তে স্ট্রিংয়ে একটি নতুন লাইন যুক্ত করা হচ্ছে


230

আমার একটা স্ট্রিং আছে

string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";

স্ট্রিংটিতে "@" চিহ্নের প্রতিটি ঘটনার পরে আমাকে একটি নতুন লাইন যুক্ত করা দরকার।

আমার আউটপুটটি এমন হওয়া উচিত

fkdfdsfdflkdkfk@
dfsdfjk72388389@
kdkfkdfkkl@
jkdjkfjd@
jjjk@

2
"টেক্সট ফাইলে নিউলাইনটি কার্যকর নয়" বলতে কী বোঝায়? আপনি কিভাবে টেক্সট ফাইলে লিখছেন?
মার্ক সিডেড

5
ফাইলটি লেখার জন্য আপনার ব্যবহৃত কোডটি পোস্ট করুন। \ r \ n (উইন্ডোজ - এনভায়রনমেন্ট.নউলাইন) বা \ n (ইউনিক্স) কাজ করা উচিত ...
গিশু

উত্তর:


482

Environment.NewLineআপনি যখনই কোনও স্ট্রিংয়ে চান তখন ব্যবহার করুন । একটি উদাহরণ:

string text = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";

text = text.Replace("@", "@" + System.Environment.NewLine);

1
তবে আমার এই তথ্যটি fkdfdsfdflkdkfk @ dfsdfjk72388389 @ kdkfkdfkkl @ jkdjkfjd @ jjjk এর মতো একটি পাঠ্য ফাইলে লিখতে হবে, পাঠ্য ফাইলে নতুন লাইন অক্ষর কার্যকর নয়।
বালাওব্লগ

এটি কোনও ভাল সমাধান নয়, যেহেতু System.String (ওরফে string) একটি পরিবর্তনযোগ্য অবজেক্ট, যার অর্থ পুরো স্ট্রিংটি অনুলিপি করা হচ্ছে। স্ট্রিং.রেপ্লেস এর মতো ক্রিয়াকলাপের জন্য একটি সিস্টেম.টেক্সট.স্ট্রিংবিল্ডার অবজেক্ট ব্যবহার করা আরও ভাল।
ワ イ き ん ぐ

@ আলেকজান্দার আমি বলব স্ট্রিং অপারেশনগুলি অদক্ষ হয়ে যাওয়া এমন একটি সমস্যা যা আমাদের আর 2019 সালে আর চিন্তা করার দরকার নেই
ফিলিপ মাদুরিরা

2
@ ফিলিপমাদুরিরা যে অনেক উপায়ে এত ভুল is হার্ডওয়্যার উন্নতি বা না, উদ্দেশ্যমূলকভাবে খারাপ প্রোগ্রামার হওয়ার জন্য কোনও অজুহাত নেই। এটি যদি আরও ভালভাবে করা যায় তবে আমরা আমাদের জানাই। এটি একটি লাইব্রেরিতে এটি বাস্তবায়নের কল্পনা ছাড়াও যা একটি ডেটাবেস সিস্টেমের মূল বৈশিষ্ট্যে ব্যবহৃত হচ্ছে - আপনি উচ্চ কার্যকারিতা চান।
ワ イ き ん ぐ

@ আলেকজান্দার একজন ভাল প্রোগ্রামার হচ্ছেন এমন একটি বিলাসিতা যা কেবল সময়সীমার / খারাপ চাকরি / কর্তাদের না করে থাকতে পারে, অন্যথায়, আমি আপনার সাথে একমত হতে পারি। আমি ভেবেছিলাম আমার বক্তব্যটি প্রথমে পরিষ্কার ছিল।
ফিলিপ মাদুরিরা

70

আপনি @ চিহ্ন হিসাবে নতুন লাইনের একটি অক্ষর যুক্ত করতে পারেন:

string newString = oldString.Replace("@", "@\n");  

আপনি ক্লাসে NewLineসম্পত্তিটিও ব্যবহার করতে পারেন Environment(আমার মনে হয় এটি পরিবেশ)।


1
তবে আমার এই তথ্যটি fkdfdsfdflkdkfk @ dfsdfjk72388389 @ kdkfkdfkkl @ jkdjkfjd @ jjjk এর মতো একটি পাঠ্য ফাইলে লিখতে হবে, পাঠ্য ফাইলে নতুন লাইন অক্ষর কার্যকর নয়।
balaweblog

18

পূর্ববর্তী উত্তরগুলি নিকটে আসে, তবে @প্রতীকটি যে নিকটে থাকে তার প্রকৃত প্রয়োজনীয়তা পূরণ করতে আপনি এটি হতে চান str.Replace("@", "@" + System.Environment.NewLine)। এটি @প্রতীকটি ধরে রাখবে এবং বর্তমান প্ল্যাটফর্মের জন্য উপযুক্ত নতুন লাইন অক্ষর যুক্ত করবে।


9

তারপরে কেবল পূর্বের উত্তরগুলিতে পরিবর্তন করুন:

Console.Write(strToProcess.Replace("@", "@" + Environment.NewLine));

আপনি যদি টেক্সট ফাইলে নতুন লাইনগুলি না চান তবে এটি সংরক্ষণ করবেন না।


6

একটি সাধারণ স্ট্রিং প্রতিস্থাপন কাজ করবে। নীচের উদাহরণ প্রোগ্রামটি একবার দেখুন:

using System;

namespace NewLineThingy
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
            str = str.Replace("@", "@" + Environment.NewLine);
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}

6

অন্যরা যেমন বলেছে যে নতুন লাইন চর আপনাকে উইন্ডোতে একটি পাঠ্য ফাইলে একটি নতুন লাইন দেবে। নিম্নলিখিত চেষ্টা করুন:

using System;
using System.IO;

static class Program
{
    static void Main()
    {
        WriteToFile
        (
        @"C:\test.txt",
        "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@",
        "@"
        );

        /*
        output in test.txt in windows =
        fkdfdsfdflkdkfk@
        dfsdfjk72388389@
        kdkfkdfkkl@
        jkdjkfjd@
        jjjk@ 
        */
    }

    public static void WriteToFile(string filename, string text, string newLineDelim)
    {
        bool equal = Environment.NewLine == "\r\n";

        //Environment.NewLine == \r\n = True
        Console.WriteLine("Environment.NewLine == \\r\\n = {0}", equal);

        //replace newLineDelim with newLineDelim + a new line
        //trim to get rid of any new lines chars at the end of the file
        string filetext = text.Replace(newLineDelim, newLineDelim + Environment.NewLine).Trim();

        using (StreamWriter sw = new StreamWriter(File.OpenWrite(filename)))
        {
            sw.Write(filetext);
        }
    }
}

কেবলমাত্র আপনার পরিবেশ.নিউলাইন == \ r \ n = এখনই সত্য (সম্ভবত এটি আমি মিস করেছি কারণ এটি সি # সিনট্যাক্স নয়;))। এছাড়াও, আরো তথ্য এখানে এমএসডিএন.মাইক্রোসফট.ডে- ডি / লাইবারি / । হার্ডকোডযুক্ত \ n আমাকে উইন্ডোতে একটি নতুন লাইন না দেওয়ার সাথে সাথে একই সমস্যার জন্য হোঁচট খেয়েছে ..
আন্দ্রেয়াস রিফ

3

আপনার প্রত্যেকে প্রত্যুত্তরের উপর ভিত্তি করে এমন কিছু যা আপনি খুঁজছেন।

string file = @"C:\file.txt";
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
string[] lines = strToProcess.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries);

using (StreamWriter writer = new StreamWriter(file))
{
    foreach (string line in lines)
    {
        writer.WriteLine(line + "@");
    }
}

2
string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
str = str.Replace("@", Environment.NewLine);
richTextBox1.Text = str;

2
string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
var result = strToProcess.Replace("@", "@ \r\n");
Console.WriteLine(result);

আউটপুট


2
যদিও এই কোডটি প্রশ্নের উত্তর দিতে পারে, কেন এবং / অথবা এই কোডটির প্রশ্নের উত্তর কীভাবে তার দীর্ঘমেয়াদী মানকে উন্নত করে তা সম্পর্কিত অতিরিক্ত প্রসঙ্গ সরবরাহ করে।
টমাস ফ্লিঙ্কো

0

আপনি ব্যবহার করতে পারে string[] something = text.Split('@')। নিশ্চিত করুন যে আপনি "@" কে এক charধরণের হিসাবে সঞ্চয় করতে চারপাশে একক উদ্ধৃতি ব্যবহার করেছেন । এটি অ্যারেতে পৃথক শব্দ হিসাবে প্রতিটি "@" অক্ষর পর্যন্ত জমা করে রাখবে। তারপরে আপনি প্রতিটি ( element + System.Environment.NewLine) লুপের জন্য ব্যবহার করে আউটপুট করতে পারেন বা এটি ব্যবহার করে কোনও পাঠ্য ফাইলে লিখতে পারেন System.IO.File.WriteAllLines([file path + name and extension], [array name])। যদি নির্দিষ্ট ফাইলটি সেই স্থানে না থাকে তবে এটি স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাবে।


0
protected void Button1_Click(object sender, EventArgs e)
{
    string str = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
    str = str.Replace("@", "@" + "<br/>");
    Response.Write(str);       
}

1
এসও সম্প্রদায়টিতে আপনাকে স্বাগতম। প্রশ্নের উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ। তবে কেন এটি কাজ করে তা সম্পর্কে কিছুটা যুক্ত করা ভাল অনুশীলন।
ফুজি

0
using System;
using System.IO;
using System.Text;

class Test
{
    public static void Main()
    {
             string strToProcess = "fkdfdsfdflkdkfk@dfsdfjk72388389@kdkfkdfkkl@jkdjkfjd@jjjk@";
            strToProcess.Replace("@", Environment.NewLine);
            Console.WriteLine(strToProcess);
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.