/** * <p>Description: split与replace函数测试</p> * <p>Created on 2017年4月19日 下午12:49:00</p> * @author 石马人山 liuyuewei@longlonggo.com */ public class MyStudy{ public static void main(String[] args) { String str = "1.2.3.4"; // //java中有几个字符需要转义:'.', '|', '', '*', '+' // outStr(str.split(".")); //错误写法,输出结果是:null // outStr(str.split("\.")); //正确写法,输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", -4)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", -3)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", -2)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", -1)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", 0)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", 1)); //输出结果是:--->1.2.3.4 // outStr(str.split("\.", 2)); //输出结果是:--->1 --->2.3.4 // outStr(str.split("\.", 3)); //输出结果是:--->1 --->2 --->3.4 // outStr(str.split("\.", 4)); //输出结果是:--->1 --->2 --->3 --->4 // outStr(str.split("\.", 5)); //输出结果是:--->1 --->2 --->3 --->4 //replace没有用到正则,所以只会替换等值匹配的字符串/字符 //replaceAll(允许使用正则全字符串匹配替换) 和 replaceFirst(允许使用正则仅替换匹配到的首个选项)用到了正则,所以特殊字符需要进行转义才能替换 str = "1*2*3*4"; // str = str.replace("*", "-"); //【此处不需要转义】输出结果是:1-2-3-4 // str = str.replace('*', '-'); //【此处不需要转义】输出结果是:1-2-3-4 // str = str.replaceAll("*", "-"); //错误写法,输出报错java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 // str = str.replaceAll("\*", "-"); //正确写法,输出结果是:1-2-3-4 // str = str.replaceFirst("*", "-"); //错误写法,输出报错java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 str = str.replaceFirst("\*", "-"); //正确写法,输出结果是:1-2*3*4 System.out.println(str); } /** * 输出函数 * @param strs 字符串数组 */ public static void outStr(String[] strs){ for (String str : strs) { System.out.println("--->"+str); } } }