当前位置:编程学习 > C#/ASP.NET >>

文本空格和换行的问题

--------------------编程问答-------------------- 恩人在哪里。。。 --------------------编程问答--------------------             string a = "a,b,c,d,,e,,,空格空格空格...换行....省略";
            string [] b = Regex.Split(a,"\r\n",RegexOptions.IgnoreCase);
            string c = "";
            foreach (var item in b)
            {
                c += item.Trim() + "\r\n";
            } --------------------编程问答--------------------

            string[] lines = File.ReadAllLines("1.txt");
            List<string> lineList = new List<string>();
            foreach (string line in lines)
            {
                lineList.Add(line.TrimEnd(' '));
            }
            lineList.RemoveAt(lineList.Count-1);
            File.WriteAllLines("2.txt", lineList.ToArray());
--------------------编程问答--------------------

        string s = @"asdfa 32 weriu435u
            asdrwerf 234
          aswedf 234
         assafdf 234";
        s = System.Text.RegularExpressions.Regex.Replace(s.Replace("\r\n", "겕"), @"\s+겕|겕\s+", "겕");
        s=s.Replace("겕", "\r\n");

用正则吧,把换行替换成特殊符号,再替换前后空格,最后把换行替换回来 --------------------编程问答--------------------
 s = System.Text.RegularExpressions.Regex.Replace(s.Replace("\r\n", "겕"), @"\s+겕|겕\s+", "겕");
        s = System.Text.RegularExpressions.Regex.Replace(s, @"겕+", "겕").Trim('겕');
        s = s.Replace("겕", "\r\n");

用正则吧,把换行替换成特殊符号,再替换前后空格,最后把换行替换回来
还要替换空行 --------------------编程问答--------------------      string str = "你的字符串";
                if (string.IsNullOrEmpty(str.Trim()) == false)
                {
                    string[] rows = str.Split('\n');
                    int colIndex = 0;
                    int r = 0;
                    foreach (var item in rows)
                    {
                        string[] cols = item.Split('\t');
                        if (!string.IsNullOrEmpty(item))
                        {
                            int c = 1;
                        
                            foreach (var col in cols)
                            {
                                string colStr = col.TrimEnd('\r').Trim();
                                switch (colIndex + c)
                                {
                                    case 1:
                                        if (string.IsNullOrEmpty(colStr) == false)
                                        {
                                           
                                        }
                                        break;
                                    case 2:
                                       
                                        break;

                                    case 3:
                                        break;
                                      。。。。。。。
                                }
                                #endregion
                                c++;
                                r++;
                            #endregion
                            }
                        }
                       
                --------------------编程问答--------------------
引用 3 楼 rtdb 的回复:

            string[] lines = File.ReadAllLines("1.txt");
            List<string> lineList = new List<string>();
            foreach (string line in lines)
            {
                lineList.Add(line.TrimEnd(' '));
            }
            lineList.RemoveAt(lineList.Count-1);
            File.WriteAllLines("2.txt", lineList.ToArray());
你好,这个会删除最后一行数据呢。 --------------------编程问答--------------------
引用 3 楼 rtdb 的回复:

            string[] lines = File.ReadAllLines("1.txt");
            List<string> lineList = new List<string>();
            foreach (string line in lines)
            {
                lineList.Add(line.TrimEnd(' '));
            }
            lineList.RemoveAt(lineList.Count-1);
            File.WriteAllLines("2.txt", lineList.ToArray());
哎,情况比我说的复杂,但我也不知道怎么描述 --------------------编程问答--------------------
引用 5 楼 c02645 的回复:
 s = System.Text.RegularExpressions.Regex.Replace(s.Replace("\r\n", "겕"), @"\s+겕|겕\s+", "겕");
        s = System.Text.RegularExpressions.Regex.Replace(s, @"겕+", "겕").Trim('겕');
        s = s.Replace("겕", "\r\n");

用正则吧,把换行替换成特殊符号,再替换前后空格,最后把换行替换回来
还要替换空行
请问怎么文本中的空行呢 --------------------编程问答--------------------
引用 7 楼 u011944195 的回复:
Quote: 引用 3 楼 rtdb 的回复:


            string[] lines = File.ReadAllLines("1.txt");
            List<string> lineList = new List<string>();
            foreach (string line in lines)
            {
                lineList.Add(line.TrimEnd(' '));
            }
            lineList.RemoveAt(lineList.Count-1);
            File.WriteAllLines("2.txt", lineList.ToArray());
你好,这个会删除最后一行数据呢。

你不是要求去掉最后一行么?
想保留的话,去掉这句就可以了:
            lineList.RemoveAt(lineList.Count-1);


--------------------编程问答--------------------
引用 10 楼 rtdb 的回复:
Quote: 引用 7 楼 u011944195 的回复:

Quote: 引用 3 楼 rtdb 的回复:


            string[] lines = File.ReadAllLines("1.txt");
            List<string> lineList = new List<string>();
            foreach (string line in lines)
            {
                lineList.Add(line.TrimEnd(' '));
            }
            lineList.RemoveAt(lineList.Count-1);
            File.WriteAllLines("2.txt", lineList.ToArray());
你好,这个会删除最后一行数据呢。

你不是要求去掉最后一行么?
想保留的话,去掉这句就可以了:
            lineList.RemoveAt(lineList.Count-1);


我可能表达的有问题,我是要删除最后一行后面的所有空格和换行 --------------------编程问答--------------------
引用 11 楼 u011944195 的回复:
我可能表达的有问题,我是要删除最后一行后面的所有空格和换行


写一个for循环,从最后一个字符开始查找,找到第一个“不是空格也不是换行”的字符。 --------------------编程问答-------------------- 按行读取,用TrimEnd函数去掉每行尾部的空格
把处理好的行拼接起来
对拼接后的字符串再调用一次TrimEnd去掉末尾的空行
根据你的实际需要在字符串最后添加一个换行 --------------------编程问答--------------------
引用 9 楼 u011944195 的回复:
Quote: 引用 5 楼 c02645 的回复:

 s = System.Text.RegularExpressions.Regex.Replace(s.Replace("\r\n", "겕"), @"\s+겕|겕\s+", "겕");
        s = System.Text.RegularExpressions.Regex.Replace(s, @"겕+", "겕").Trim('겕');
        s = s.Replace("겕", "\r\n");

用正则吧,把换行替换成特殊符号,再替换前后空格,最后把换行替换回来
还要替换空行
请问怎么文本中的空行呢

 s = System.Text.RegularExpressions.Regex.Replace(s, @"겕+", "겕").Trim('겕');这个已经是替换空行了。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 12 楼 sp1234 的回复:
Quote: 引用 11 楼 u011944195 的回复:

我可能表达的有问题,我是要删除最后一行后面的所有空格和换行


写一个for循环,从最后一个字符开始查找,找到第一个“不是空格也不是换行”的字符。
我写了个方法,但是还是不行呢,是下面这种情况。

--------------------编程问答--------------------
引用 13 楼 iyomumx 的回复:
按行读取,用TrimEnd函数去掉每行尾部的空格
把处理好的行拼接起来
对拼接后的字符串再调用一次TrimEnd去掉末尾的空行
根据你的实际需要在字符串最后添加一个换行
试了,还是不行,是下面这种情况


想变成这个样子
--------------------编程问答-------------------- 文本是这个样子的


想转换变成这样


这是我写的方法,但是处理还是有些问题,不能达到理想的效果,请高人路过指点。

public static string RemoveChr(string str)
        {
            string[] tailChr = { " ", "\n", "\t", "\r" };
            //string strRelt="";
            if (str.Substring(str.Length - 1).Equals(tailChr[0]) || str.Substring(str.Length - 1).Equals(tailChr[1])
                || str.Substring(str.Length - 1).Equals(tailChr[2]) || str.Substring(str.Length - 1).Equals(tailChr[3]))
            {
                return RemoveChr(str.Substring(0, str.Length - 1));
            }
            else
            {
                return str;
            }
        }
--------------------编程问答--------------------
引用 18 楼 u011944195 的回复:
文本是这个样子的


想转换变成这样


这是我写的方法,但是处理还是有些问题,不能达到理想的效果,请高人路过指点。

public static string RemoveChr(string str)
        {
            string[] tailChr = { " ", "\n", "\t", "\r" };
            //string strRelt="";
            if (str.Substring(str.Length - 1).Equals(tailChr[0]) || str.Substring(str.Length - 1).Equals(tailChr[1])
                || str.Substring(str.Length - 1).Equals(tailChr[2]) || str.Substring(str.Length - 1).Equals(tailChr[3]))
            {
                return RemoveChr(str.Substring(0, str.Length - 1));
            }
            else
            {
                return str;
            }
        }

唉,你这个方法一句话就可以完成:
str = str.Trim();
--------------------编程问答-------------------- 把文本里面的内容历遍,用换行符替换回车,文本里面可能有涉及char(10)、char(13)、char(10)&char(13),把这些的可能替换成换行符应该没问题了。 --------------------编程问答-------------------- 1. Regex.Replace(line, @"(\S)\s*(\r\n)", "$1$2");
2.去掉最后一行包括后面的所有空格和换行符 说法本身就有剖一,如果后面还有换行符,那就不能算是真正意义上的最后一行了
只要找到你所谓的最后一行的位置就好办了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,