【问题标题】:Replace multiples words in text document C#替换文本文档中的多个单词C#
【发布时间】:2017-03-27 23:18:36
【问题描述】:

所以我试图让一个程序运行以节省我为 android studio 复制和粘贴大量文本的时间。为此,我创建了包含所需信息的所有不同位的列表框,添加了按钮单击事件以创建文档,并添加了另一个按钮单击事件以将文本添加到文档中。到目前为止,我能够在添加一组 latlongs 时生成所有文本,但我似乎无法弄清楚如何在其中添加另一组 latlongs。 例如

我需要:

googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));

googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000, 
31.03650000000)).title(ccc));

但我得到的只是:

googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.79940000000, 31.01680000000)).title(bbb));

googleMap.addMarker(new MarkerOptions().position(new LatLng(-17.80150000000, 31.01680000000)).title(bbb));

经度值没有变化?我希望这一切都有意义?

string path = Environment.CurrentDirectory + "/" + "latlong.txt";

    private void button1_Click(object sender, EventArgs e)
    {
        if (!File.Exists(path))
        {
            File.CreateText(path);
            MessageBox.Show("File has been created.");
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        using (StreamWriter stwr = new StreamWriter(path))
        {
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + ")).title(" + "bbb" + "));");
            }
            stwr.Close();
            string text = File.ReadAllText("latlong.txt");
            for (int ii = 0; ii < listBox2.Items.Count; ii++)
            {

                text = text.Replace("ii", Convert.ToString(listBox2.Items[ii]));
            }
            File.WriteAllText("latlong.txt", text);
        }
    }

【问题讨论】:

标签: c# text document


【解决方案1】:

我想问题是Replace 正在替换所有出现的ii,所以如果你调试你的循环,你会发现只有第一次iilistBox2 中的第一项替换.为了解决这个问题,我认为你应该将索引添加到ii,就像这样

private void button2_Click(object sender, EventArgs e)
{
    using (StreamWriter stwr = new StreamWriter(path))
    {
        for (int i = 0; i < listBox1.Items.Count; i++)
        {
            stwr.WriteLine("googleMap.addMarker(new MarkerOptions().position(new LatLng(" + listBox1.Items[i] + ", " + "ii" + i + ")).title(" + "bbb" + "));");
        }
        stwr.Close();
        string text = File.ReadAllText("latlong.txt");
        for (int ii = 0; ii < listBox2.Items.Count; ii++)
        {

            text = text.Replace("ii"+ii, Convert.ToString(listBox2.Items[ii]));
        }
        File.WriteAllText("latlong.txt", text);
    }
}

请注意,在第一个循环中我添加了"ii" + i,而在第二个循环中我替换了"ii"+ii

【讨论】:

  • 啊,太好了!我知道我哪里出错了,非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 2016-06-11
  • 2018-08-15
相关资源
最近更新 更多