在java中,为了保证跨平台时目录可以正确被访问,我们会使用到File.separator来获取当前系统的目录分隔符。
但是如果使用replaceAll替换这个分隔符会出现下边的异常。
path = path.replaceAll(File.separator,"-"); ===================================== Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
我们来看一下replaceAll的API描述
Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string; see Matcher.replaceAll. Use Matcher.quoteReplacement to suppress the special meaning of these characters, if desired.
注意:”\“和"$"在做为替换字符串的时候,可能会出现一个不同的结果,建议我们使用Matcher.quoteReplacement函数先对替换字符进行转译。
System.out.println(File.separator); //输出 "\" System.out.println(Matcher.quoteReplacement(File.separator)); //输出"\\" System.out.println("/"); //输出 "/" System.out.println(Matcher.quoteReplacement("/")); //输出 "/" System.out.println("$"); //输出 "/" System.out.println(Matcher.quoteReplacement("$")); //输出 "/"
上边的语句应该修改为:
path = path.replaceAll(Matcher.quoteReplacement(File.separator),"-");
最后来看看Matcher.quoteReplacement(sep)的API说明。
java.util.regex.Matcher public static java.lang.String quoteReplacement(java.lang.String s) Returns a literal replacement String for the specified String. This method produces a String that will work as a literal replacement s in the appendReplacement method of the Matcher class. The String produced will match the sequence of characters in s treated as a literal sequence. Slashes ('\') and dollar signs ('$') will be given no special meaning. Parameters: s - The string to be literalized Returns: A literal string replacement Since: 1.5
相关推荐
Window系统无法调用OpenCV代码报错:java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: C:\Windows\System32\opencv_java343.dll。出现该问题主要是安装的Windows系统缺乏...
NULL 博文链接:https://denghuijia1314521-gmail-com.iteye.com/blog/1341258
DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_SEPARATOR常量。 我们知道DIRECTORY_SEPARATOR是一个PHP常量,代表反斜杠,因为windows系统...
这是本人在进行使用递归替换HTML文件中的图片内容时,所遇到的问题解决方案,喜欢能够帮到大家,让自己懂得东西越来愈多,做更多的分享
一个是:PATH_SEPARATOR PATH_SEPARATOR:include多个路径使用,在windows下,当你要include多个路径的话,你要用”;”隔开,但在linux下就使用”:”隔开的。 这2个常量的使用能够避免不同平台的兼容性问题 您可能...
PATH_SEPARATOR是php中的一个预定义常量,我们可以直接echo这个常量,在linux系统中,该常量输出”:”,在windows系统中,该常量输出”;”号。因此,我们可以通过PATH_SEPARATOR输出值来判断当前服务器系统类型。 在...
XML_Separator
#分隔器 日志分隔符到您的控制台等等 ns = require('separator');ns.separator('=').log(); // logs a string of ='s to the console => ==========...ns.separator('+=', 13).log(); // logs to the console, ...
DIRECTORY_SEPARATOR在php是什么意思呢,在什么时候使用DIRECTORY_SEPARATOR最合理呢?下面来给各位介绍一下php DIRECTORY_SEPARATOR常量。 我们知道DIRECTORY_SEPARATOR是一个PHP常量,代表反斜杠,因为windows系统...
分隔器分离器是一个简单的演示项目,用于说明不同类型的。... 建立项目后,您可以使用java -Xmx2G -jar target/separator-1.0.0-jar-with-dependencies.jar版本号可能需要更改。 请注意,分隔符并没有真正优化。
因果关系输入非数字字符串时自动删除如果“-”(减号)未附加在第一个字符串上,则会被删除为不必要的字符串。选项input_selector:获取目标输入表单(多个对应关系),例如)“表单输入[type ='text'] [d
主要介绍了php PATH_SEPARATOR判断当前服务器系统类型实例的相关资料,需要的朋友可以参考下
大文件切割工具。
人眼很难快速解析大的数字文字,尤其是在有很长的数字重复时。 这会损害获得正确值/数量级的能力...... 1000000000 // Is this a billion? a hundred millions? Ten millions? 101475938.38 // what scale is ...
主要为大家详细介绍了WPF集合控件实现分隔符ItemsControl Separator,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
List control with single / double separator lines带有一个/两个分割线的列表控制(10KB)
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 2、join方法, [作用] 将原有数组对象转换成1个字符串,可以用指定分隔符进行串联。 [语法] arrayObj.join(separator),separator为分隔符,默认为“,”。 [实例] ...
此扩展的目的是在英语中创建其他扩展图标 之间的空白空间: 此扩展有一个简单的目的。 它划分扩展图标之间有用透明图标之间的空间。 很简单! changelog: 版本0.2 - 透明图标背景 版本0.3 - 使用扩展页面添加图标...