【发布时间】:2016-03-29 17:50:10
【问题描述】:
我想检查包含路径的字符串是否合法。
什么不起作用:
- 我可以使用正则表达式并替换特定操作系统(如 Windows)的无效字符;这仅适用于单个特定操作系统
- 我可以使用 Java 7 的 NIO
Paths.get()并捕获异常,但这只会说明路径是否有效,我想删除无效字符。
我只在互联网上找到了执行上述操作之一的资源。很棒的是标准库中的 getInvalidChars() 之类的东西,它会给我一个系统相关的无效字符列表(或正好相反,getAllowedChars() 或类似的东西)。
Java 版本无关紧要。
提前致谢!
【问题讨论】:
-
如果作为安慰,由 Paths.get() 生成的 InvalidPathException 确实会在其 getIndex() 方法上返回违规字符的位置。也许这可以作为(超慢)字符检查器的基础......
-
我会检查它有多慢,它不一定要快。
标签: java cross-platform