例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

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

java中去除字符串(String)中的换行字符(\r \n \t)的更多相关文章

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

    我们先来看几个例子: 例1: public class Test { public static void main(String[] args) { String s = "'sds gd ...

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

    有时在文本框中输入内容特别是粘贴内容时会出现一些换行符(\r\n),如下,在做字数验证或保存到数据库中时应过滤掉. str.replaceAll("\r|\n","&qu ...

  3. PHP中去除字符串中的换行的方法

    在PHP中,有时候我们需要对字符串的换行进行过滤,比如天涯PHP博客中文章页面的description信息,我是直接截取的文章内容,并过滤掉html符号,最终还要过滤掉其中的换行.下面整理一下常见的去 ...

  4. Java 处理json字符串value中多余的双引号

    转: Java 处理json字符串value中多余的双引号 一.错误场景 json字符串的value值中有多余的双引号 1.直接上错误的json字符串 1 String errorJsonStr =  ...

  5. LeetCode随缘刷题之Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成

    今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat&qu ...

  6. Python中去除字符串中的单个或多个空格的方法总结

    python中去除字符串中空格的方法比较多,单个看起来也都比较简单 但是使用起来容易发生混淆 为了加深记忆 将常用的去除字符串中空格的方法汇总如下 方法一:strip()方法 >>> ...

  7. Java 中的字符串(String)与C# 中字符串(string)的异同

    1. C# 中比较两个字符串字面量是否相等,可以使用 “==”比较运算符,是因为string 类型重写(override)了“==” 和 “!=” 运算符,在使用“==” 和 “!=” 进行字符串比较 ...

  8. java中的字符串String

    一.String简介d 参考:https://www.cnblogs.com/zhangyinhua/p/7689974.html String类代表字符串. java.lang.String: Ja ...

  9. Java中char和String 的深入理解 - 字符编码

    开篇 https://blog.csdn.net/weixin_37703598/article/details/80679376 我们并不是在写代码,我们只是将自己的思想通过代码表达出来! 1 将思 ...

随机推荐

  1. 重新安装liteide后无法关联.go文件的解决办法(及更改liteide配色方案)

    现象:双击.go文件,从打开方式中选择新安装的liteide.exe无效. 解决办法: 打开regedit 找到HKCU\Software\Classes\go_auto_file 发现下面有shel ...

  2. Springboot 实现api校验和登录验证

    https://blog.csdn.net/qq_36085004/article/details/83348144 文章目录 API校验 场景 实现思路 代码 拦截器: 拦截器注册: 登录token ...

  3. 1.java的基础和数据类型

    一.学习要求1.听课一定要全神贯注2.课堂笔记,一定要自己总结,而且要有很严谨的逻辑关系.提纲很重要3.作业不折不扣的完成,并且多完成4.阶段项目一定要独立完成5.每天早上由一位同学来进行早分享,内容 ...

  4. Topshelf:一款非常好用的 Windows 服务开发框架 转发https://www.cnblogs.com/happyframework/p/3601995.html

    背景 多数系统都会涉及到“后台服务”的开发,一般是为了调度一些自动执行的任务或从队列中消费一些消息,开发 windows service 有一点不爽的是:调试麻烦,当然你还需要知道 windows s ...

  5. pytorch .detach() .detach_() 和 .data用于切断反向传播

    参考:https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch-autograd/#detachsource 当我们再训 ...

  6. 吴恩达课后作业学习2-week1-1 初始化

    参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 初始化.正则化.梯度校验 ...

  7. go标准库的学习-errors

    参考https://studygolang.com/pkgdoc 导入方式: import "errors" errors包实现了创建错误值的函数. 1)func New func ...

  8. linux注释多行

    方法一:使用可视化模块添加实现多行注释 1.打开文件/etc/password进行测试: vim /etc/password 2.进入到视图模式:按ctrl+v 1 root:x:0:0:root:/ ...

  9. python3 练习题 day04

    '''1.整理装饰器的形成过程,背诵装饰器的固定格式''''''开放封闭原则:为了保证程序的稳定性,和功能的可开放性,在不修改目标函数源代码和调用方式的情况下,对目标函数增加新功能'''# def w ...

  10. hibernate(*.hbm.xml)中新添加的字段被标记为红色(找不到)的解决方法

    首先得是以这个方式生成的bean和xml,配置好了数据源(这样才能让hibernate中的配置和mysql进行交互) https://www.cnblogs.com/kinome/p/10549969 ...