我们先来看几个例子:

例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:

System.out.println("\\r 输出:"+"abc"+"\r"+"abc");
  System.out.println("\\n输出:"+"abc"+"\n"+"abc");

以上两句在控制台输出的格式是一样的:

\r输出:abc
abc
\r输出:abc
abc

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

例3:

public class Test {

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'

输出结果可以看出\r和\n啊hi不相等的。

那么他们有什么区别呢?

例4:

public class Test {

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 Test {

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的区别,这是网上的一个比较好的答案:

enter+newline with different platforms:
windows:   \r\n
mac:           \r
unix/linux:  \n
 
in "abc" + ”\n\rdef”, \n\r   do not match any platform,so it is considered as \n and \r  (which match unix/linux  and mac),so there are two new lines.
in  "abc" + ”\r\ndef”   \r\n matches the windows platform,so it is considered as only one new line.
scim crushed, so just English.
 

关于\t 它相当于按了一下Tab键。

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

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

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

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

    例1: public class Test { public static void main(String[] args) { String s = "'sds gdasda" ...

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

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

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

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

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

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

  6. java中的字符串String

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

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

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

  8. C语言和C++中的字符串(string)

    知识内容: 1.C\C++字符串简述 2.C字符串相关操作 3.C++ string类相关操作 一.C\C++字符串简述 1.C语言字符串 C语言字符串是字符的数组.单字节字符串顺序存放各个字符串,并 ...

  9. Redis字符串(STRING)中BIT相关命令

    上篇文章我们对STRING数据类型中一些基本的命令进行了介绍,但是没有涉及到BIT相关的命令,本文我们就来看看几个和BIT相关的命令. 本文是Redis系列的第四篇文章,了解前面的文章有助于更好的理解 ...

随机推荐

  1. Python之“Hello World”

    Python之“Hello World” 了解Python: 编译型和解释型 编译:把明文代码执行前,先转换成二进制,在执行.这个过程叫编译 解释器:将明文代码转成二进制的 Linux中,gcc编译, ...

  2. Spring Boot 2 (二):Spring Boot 2 尝鲜-动态 Banner

    Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发 ...

  3. NioEventLoop.run select处理IO事件(boss/worker)流程:

    NioEventLoop.run select处理IO事件(boss/worker)流程:processSelectedKeysprocessSelectedKeysOptimizedprocessS ...

  4. C51 定时器/计数器 个人笔记

    C51的周期 结构图 两个功能寄存器 51单片机定时/计数器的工作由两个特殊功能寄存器控制.TMOD用于设置其工作方式:TCON用于控制其启动和中断申请. 工作方式寄存器TMOD 其中方式一和方式二常 ...

  5. mongodb & macOS

    mongodb & macOS https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ https://stacko ...

  6. ZOJ2193 AOV建模

    每个窗口有四个小区域组成,那么不断往前递推,到达打开当前窗口时必然是那些在上面出现的窗口都已经被打开过了,那么我们可以认为是在第i个窗口的位置上出现了 j , 那么in[i]++ , 只有 i 入度为 ...

  7. hdu 4788

    #include<stdio.h> #include<math.h> int main() { int a; double d; char s],ch; for;i++) d; ...

  8. codeforces365A

    #include<stdio.h> #include<string.h>//刚做codeforces上的比赛题我都没看懂啊啊啊啊啊啊 int main() { int n,m, ...

  9. 【BZOJ3669】魔法森林(LCT)

    题意:有一张无向图,每条边有两个权值.求选取一些边使1和n连通,且max(a[i])+max(b[i])最小 2<=n<=50,000 0<=m<=100,000 1<= ...

  10. Thinkphp5.0 的响应方式

    Thinkphp5.0 的响应方式 $res = config('default_return_type'); dump($res);//默认是html //修改为json \think\Config ...