none
字符串删除注释 RRS feed

  • 问题

  • string myString = @"<key>啊<translation>的<title>并</title><original>有</original><interpret>人</interpret></translation></key>"
    有许多相同格式的内容,请问如何删除(<title>并</title>),整个括号内的字符。
    • 已更改类型 Eashin163 2015年6月10日 15:25 已解决,帮助他人
    • 已更改类型 Eashin163 2015年6月10日 15:26
    • 已更改类型 Eashin163 2015年6月10日 15:26 已解决
    2015年6月10日 13:59

答案

  • 静坐了一下,已经解决了。下面是代码:

    using System.IO;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            static bool kg = false;
    
            static void ignore(ref int o, string fileContent)
            {
                while (true)
                {
                    if (kg == true)
                    {
                        if (fileContent[o++] == '/')
                        {
                            kg = false;
                        }
                    }
                    else
                    {
                        if (fileContent[o] == 'e' && fileContent[o + 1] == '>')
                        {
                            o += 1;
                            return;
                        }
                        else
                        {
                            o++;
                        }
                    }
                }
            }
    
            static void Main(string[] args)
            {
                string filePath = @"~filePath~";
                FileStream fileName = new FileStream(filePath, FileMode.Open);
                StreamReader reader = new StreamReader(fileName);
                StringBuilder sb = new StringBuilder("");
                string fileContent = reader.ReadToEnd();
                
                for (int o = 0; o < fileContent.Length; o++)
                {
                    if (fileContent[o]  == '<' && fileContent[o + 1] == 't')
                    {
                        kg = true;
                        ignore(ref o, fileContent);
                    }
                    else
                    {
                        sb.Append(fileContent[o]);
                    }
                }
    
                Console.WriteLine(sb);
    
                Console.ReadKey();
    
            }
        }
    }




    • 已标记为答案 Eashin163 2015年6月10日 15:26
    • 已编辑 Eashin163 2015年6月11日 4:50
    2015年6月10日 15:23

全部回复

  • 静坐了一下,已经解决了。下面是代码:

    using System.IO;
    
    namespace ConsoleApplication3
    {
        class Program
        {
            static bool kg = false;
    
            static void ignore(ref int o, string fileContent)
            {
                while (true)
                {
                    if (kg == true)
                    {
                        if (fileContent[o++] == '/')
                        {
                            kg = false;
                        }
                    }
                    else
                    {
                        if (fileContent[o] == 'e' && fileContent[o + 1] == '>')
                        {
                            o += 1;
                            return;
                        }
                        else
                        {
                            o++;
                        }
                    }
                }
            }
    
            static void Main(string[] args)
            {
                string filePath = @"~filePath~";
                FileStream fileName = new FileStream(filePath, FileMode.Open);
                StreamReader reader = new StreamReader(fileName);
                StringBuilder sb = new StringBuilder("");
                string fileContent = reader.ReadToEnd();
                
                for (int o = 0; o < fileContent.Length; o++)
                {
                    if (fileContent[o]  == '<' && fileContent[o + 1] == 't')
                    {
                        kg = true;
                        ignore(ref o, fileContent);
                    }
                    else
                    {
                        sb.Append(fileContent[o]);
                    }
                }
    
                Console.WriteLine(sb);
    
                Console.ReadKey();
    
            }
        }
    }




    • 已标记为答案 Eashin163 2015年6月10日 15:26
    • 已编辑 Eashin163 2015年6月11日 4:50
    2015年6月10日 15:23
  • @Eashin,

    谢谢分享~



    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年6月11日 7:49