关于转义:
\ ==> \\
\\==>\\\\
"==>\"
\"==>\\\"(拆分为\\+\")
区别:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于正则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点:
都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
替换第一次出现的,可以使用 replaceFirst()
读取文件,将字符串的"\n"替换成空串,java先引入io
<!--加入对commons-io的依赖-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
直接方法解析:
//传入字符串,解析成字符串集合
public static String getArrayData(String str)throws IOException{
String json=null;
String ss=null;
if(!str.isEmpty()){
try {
//io读取文件,转换成字符串
File file = new File("F:\2018-11-10\old\bidui\20170102143829.txt");
String content = FileUtils.readFileToString(file);
JSONObject js=new JSONObject(content);
json=js.getString("data");
//将\n替换成一个空串
ss=json.replaceAll("\n","");
}catch (Exception e){
}
}
return ss;
}
小知识梳理一下:
\\ 反斜杠
\t 间隔 ('\u0009')
\n 换行 ('\u000A')
\r 回车 ('\u000D')
\d 数字 等价于 [0-9]
\D 非数字 等价于 [^0-9]
\s 空白符号 [\t\n\x0B\f\r]
\S 非空白符号 [^\t\n\x0B\f\r]
\w 单独字符 [a-zA-Z_0-9]
\W 非单独字符 [^a-zA-Z_0-9]
\f 换页符
\e Escape
\b 一个单词的边界
\B 一个非单词的边界
\G 前一个匹配的结束
用"\\*" "\\+"转义后即可得到正确的结果。
“.”和“|”都是转义字符必须得加"\\";要么就直接报异常了。