亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在拆分字符串中輸出所有字符串數組?

如何在拆分字符串中輸出所有字符串數組?

C#
智慧大石 2023-04-29 15:43:55
我寫了這段代碼,將“@”和“:”分開var Split = Texts.Split(new char[] { '@' });var Split1 = Texts.Split(new char[] { ':' });我想將所有字符串數組輸出到一個文件中。我已經試過了,但我只得到一根繩子,而不是全部。formatted = Split[0] + ":" + Split1[1];File.WriteAllText(outputfile, formatted);這是我的代碼:public void CreateUsernameList(string targetfile,string outputfile){    string[] texts = File.ReadAllLines(targetfile);    string formatted = null;    foreach(string Texts in texts)    {        var Split = Texts.Split(new char[] { '@' });        var Split1 = Texts.Split(new char[] { ':' });        formatted = Split[0] + ":" + Split1[1];        File.WriteAllText(outputfile, formatted);    }}
查看完整描述

3 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您正在不斷覆蓋該循環中的文件。而是將結果收集在 a 中List<string>,然后將其寫入文件。


public void CreateUsernameList(string targetfile,string outputfile)

{

    string[] texts = File.ReadAllLines(targetfile);

    string formatted = null;

    List<string> output = new List<string>();

    foreach(string Texts in texts)

    {

        var Split = Texts.Split(new char[] { '@' });

        var Split1 = Texts.Split(new char[] { ':' });

        formatted = Split[0] + ":" + Split1[1];

        output.Add(formatted);

    }


    File.WriteAllLines(outputfile, output)

}

不會使用那么多內存的替代方案是


public void CreateUsernameList(string targetfile,string outputfile)

{

    File.WriteAllLines(

        outputfile,

        File.ReadLines(targetfile)

            .Select(line => 

             {

                 var Split = line.Split(new char[] { '@' });

                 var Split1 = line.Split(new char[] { ':' });

                 return Split[0] + ":" + Split1[1];

             }

        )

    ); 

}


查看完整回答
反對 回復 2023-04-29
?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

最好以惰性方式讀取文件:


File.ReadLines(targetfile).ForEach(line =>

{

    File.AppendAllText("path", string.Join(":", Regex.Split(line, "@|:")

                               .Cast<Match>().Select(m => m.Value)));

});


static class ExtensionMethods

{

    internal static void ForEach<T>(this IEnumerable<T> enumerable, Action<T> action)

    {

        if (enumerable == null) throw new NullReferenceException($"'{nameof(enumerable)}' argument is null");

        using var enumerator = enumerable.GetEnumerator();

        while (enumerator.MoveNext()) action(enumerator.Current);

    }

}


查看完整回答
反對 回復 2023-04-29
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

由于我沒有看到任何格式的數據,我只能猜測錯誤可能出在這里:

格式化 = Split[0] + ":" + Split1[1];

您只從每個字符串數組中獲取單個元素。嘗試遍歷數組 Split 和 Split1 中的所有元素以打印它們的值


查看完整回答
反對 回復 2023-04-29
  • 3 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號