1、正则表达式特殊字符
Java 代码中使用到正则表达式里的特殊字符需要使用转义符 进行转义
. ? * + ! ^ $ [ ] ( )
因为反斜线 也是特殊字符,所以转义需双反斜线 \,否则会报 java.util.regex.PatternSyntaxException 异常。
public static void main(String[] args) { String string = "435212.jpg"; if (string.contains(".")) { System.out.println("包含一个点"); } String suffix = string.split("\.")[1]; System.out.println(suffix); }
上面代码的运行结果是:
可以看出 contains 方法不需要转义,而 split 方法就需要转义了,所以 JDK API 中只有参数是正则表达式的地方才需要转义。
java.lang.String 类中参数是正则表达式的方法有:
public boolean matches(String regex); public String replaceFirst(String regex, String replacement); public String replaceAll(String regex, String replacement); public String[] split(String regex); public String[] split(String regex, int limit);
将List通过正则转换为SQL中IN条件字符串(使用了replaceAll):
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaa"); list.add("bbbb"); String str = "('" + list.toString().replaceAll("\[|\]|\s", "").replaceAll(",", "','") + "')"; System.out.println(str); }
2、文件路径的写法
Windows下路径写法,间隔符使用双反斜线 \
C:\Users\QPING\Desktop\JavaScript\2.html
Linux下路径写法,间隔符用斜线 /
/site/images/qiyinwang/userid/xxxxx.jpg
或者在Java中可以直接使用 File.separator ,可以自动识别为对应操作系统下的文件间隔符
String path = "D:"+File.separator+"tempPicture.jpg";//文件保存路径 D: empPicture.jpg String path = File.separator+"site"+File.separator+"tempPicture.jpg";//文件保存路径 /site/tempPicture.jpg