记录Java中遇到的\r,\n,\r\n(仅限于Windows系统)
首先
\r: 就是回到行首,
\n: 就是到下一行
即:前者使光标回到行首,后者使光标下移一格。
直接上代码
System.out.println("aaaa\r\nbbbb");
System.out.println("cccc\rdddd");
System.out.println("eeee\nffff");
System.out.println("gggg"+"\r|\n"+"hhhh");
结果是:
其中“|”是因为遇到过一个**replaceAll("\r|\n","-");**所以想试一下有什么效果,原来发现没什么用
之前想的结果应该是:
aaaa
bbbb
cccc
dddd
eeee
ffff
gggg
hhhh
结果实际测试了之后还是很打脸的,所以说任何东西没有测试过不能妄断言论
解释
\r:就是return 回到本行行首,就会把这一行以前输出覆盖掉
\n:就是换行+回车,把光标先移到下一行>>>然后再换到行首>>>也就是下一行的行首
有的编辑器只认 \r\n 比如记事本,有的编辑器则两个都认,所以想通用,最好使用 \r\n
下面是对字符串使用replace、replaceAll将\r、\n、\r\n 替换为"-"分隔符
上代码
String str = "aaaa\r\nbbbb";
String str1 = str.replace("\r\n","-");
System.out.println(str1);
String str2 = str.replaceAll("\r|\n","-");
System.out.println(str2);
String[] str3 = str2.split("-");
for (int i=0;i<str3.length;i++){
System.out.println(i+"="+str3[i]);
}
String str4 = str.replaceAll("\r\n","-");
System.out.println(str4);
String[] str5 = str4.split("-");
for (int i=0;i<str5.length;i++){
System.out.println(i+"="+str5[i]);
}
结果是
replace的参数是字符串或者字符,既可以支持字符串的替换也可以支持字符的替换
replaceAll的参数是正则表达式或者是字符
相同点:
都是全部替换,即把源字符串中的某一字符或者字符串全部或转换成指定的字符或者字符串
如果只想转换第一次出现的,可以使用replaceFirst()这个方法也是基于正则表达式的替换,但是于replaceAll不同的是,只替换第一次
出现的字符串,另外如果replaceAll()和replaceFirst()所用的参数不是基于正则表达式的,则于replace()替换字符串的效果是一样的即
这两种也支持字符串的操作