• java中去除字符串(String)中的换行字符(\r \n \t)


    例1:

    public class Test {
        public static void main(String[] args) {
            String s = "'sds gdasda" + "\n" + "edaeafd'";
            System.out.println("转换前:"+s);
            s = s.replaceAll("\r|\n", "");
            System.out.println("转换后:"+s);
        }
    }

    输出结果:
    转换前:'sds gdasda
    edaeafd'
    转换后:'sds gdasdaedaeafd'

    例2:

    public class Test2 {
        public static void main(String[] args) {
            System.out.println("\\r 输出:"+"abc"+"\r"+"abc");
            System.out.println("\\n输出:"+"abc"+"\n"+"abc");
        }
    }
    

    输出结果:
    \r 输出:abc
    abc
    \n输出:abc
    abc

    那么\r与\n是不是相等的呢?

    例3:

    public class Test3 {
        public static void main(String[] args) {
            String s = "'sds gdasda" + "\n" + "edaeafd'";
            System.out.println("转换前:"+s);
            s = s.replaceAll("\r", "");
            System.out.println("转换后:"+s);
        }
    }

    输出结果:
    转换前:'sds gdasda
    edaeafd'
    转换后:'sds gdasda
    edaeafd'

    经过s.replaceAll("\r", ""),\n并没有被替换成空,说明\n和\r是不相等的

    例4:

    public class Test4 {
        public static void main(String[] args) {
            String s = "'sds gdasda" + "\n\r" + "edaeafd'";
            System.out.println("转换前:"+s);
            s = s.replaceAll("\r|\n", "");
            System.out.println("转换后:"+s);
        }
    }

    输出结果:
    转换前:'sds gdasda

    edaeafd'
    转换后:'sds gdasdaedaeafd'

    可以看出\r表示回车,\n表示另起一行(\r 叫回车 Carriage Return  ;\n 叫新行 New Line)

    我们可以再做一个实验:

    例5:

    public class Test5 {
        public static void main(String[] args) {
            String s = "'sds gdasda" + "\r\n" + "edaeafd'";
            System.out.println("转换前:"+s);
            s = s.replaceAll("\r|\n", "");
            System.out.println("转换后:"+s);
        }
    }

    输出结果:
    转换前:'sds gdasda
    edaeafd'
    转换后:'sds gdasdaedaeafd'

    在例4到例5中我们只是把字符串s的\n\r的位置改变成了\r\n,却发现例4输出结果中多了一行空格。

    至于为什么例4和例5输出会有这样的区别也就是\r\n与\n\r的区别,这是网上的一个比较好的答案:

    不同平台的回车+换行
    windows: \r\n
    mac: \r
    unix/linux: \n

    在"abc"+"\n\rdef"中,\n\r不匹配任何平台,因此它被认为是\n和\r(匹配unix/linux和mac),即进行了"换行+回车"操作,所以有两个新行。
    在"abc"+"\r\ndef"中,\r\n匹配Windows平台,因此它被认为只是一个新的行。

    本文转载自https://blog.csdn.net/y13530828499/article/details/6718206 

    若有侵权,请联系本人删除

  • 相关阅读:
    Alpha冲刺(3/10)
    Alpha冲刺(2/10)
    Alpha冲刺(1/10)
    软工实践第七次作业——需求分析报告
    2018软工实践第八次作业-团队项目UML设计
    2018软工实践第六次作业-团队选题报告
    2018软工实践第五次作业-结对作业(2)
    软工实践第四次作业-团队展示
    2018软工实践第三次作业-结对作业
    Alpha冲刺(4/10)
  • 原文地址:https://www.cnblogs.com/jwen1994/p/9984684.html
Copyright © 2020-2023  润新知