![](/img/trans.png)
[英]How to replace backslash followed by 't' or any other alphabet or character in escape chacter in file path to forward slash in java?
[英]How to escape forward slash in java so that to use it in path
我试图在String中转义正斜杠,可以在使用Java的路径中使用它。
例如: String:: "Test/World"
现在我想使用上面的字符串路径。同时我必须确保"Test/World"
将在路径中出现。 对不起,如果它的副本,但我找不到任何满意的解决方案。 我的目的是使用上面的字符串在Zookeeper中创建节点。
例:
如果我使用以下字符串在Zokkeeper中创建节点,那么我应该将“Test / World”作为单个节点而不是单独的。 Zookeeper接受“/”作为路径分隔符,在某些情况下我不需要。 /zookeeper/HellowWorld/Test/World
谢谢
为了在Java中转义字符,请使用“\\”,例如:
String strPath = "directory\\file.txt".
我相信你不需要逃避正斜杠,例如:“/”
我对Zookeeper一无所知。 但它看起来好像你试图保留一个字符串列表,如"zookeeper", "HellowWorld", "Test/World"
,然后你想用它来创建Zookeeper节点或创建一个路径名文件系统。 (我假设如果您正在使用文件系统,那么您将在Test
子目录中拥有一个子目录Test
和一个文件或子目录World
。如果您实际上尝试创建一个名为的单个文件或目录Test/World
,放弃.Linux和Windows都会和你一起战斗。)
如果是这种情况,那么不要试图将“路径”表示为您在程序中传递的简单String
。 而是将其表示为String[]
或ArrayList<String>
,然后仅在需要文件系统路径名时将其转换为文件系统路径名。 或者,更好的是,使用getFilesystemPath
方法定义自己的类。 过早地将节点名称列表转换为路径名String
,然后尝试稍后从String
重构列表,这是一种糟糕的方法,因为您丢弃了以后需要的数据(特别是,您丢弃了哪些信息) /
characters是分隔符,哪些是节点名称的一部分)。
编辑:如果你还需要一个Zookeeper的单一路径名,正如你在另一个评论中提到的那样,我无法帮助你,因为我不知道Zookeeper并且没有找到任何东西快速查看文档。 如果有一种方法可以转义Zookeeper的斜杠,那么我仍然建议使用getFilesystemPath
方法和getZookeeperPath
方法定义自己的类,因为在某些情况下这两种方法可能会返回不同的String
。 该类将在内部将名称保存为数组或ArrayList
。
让我重新提一下你的问题。 您正在尝试在zookeeper中创建一个节点,它应该是/ zookeeper / HelloWorld / NodeName。 但最后一部分“NodeName”实际上是“Test / World”,你正在寻找逃避“/”的方法,因此节点名称可以是“Test / World”。
除非你尝试使用unicode,否则我认为它不会逃脱char。
尝试\\ u002F,它等同于/。
我们正在尝试解决完全相同的问题(使用文件系统路径作为zookeeper中的节点名称)a我们还没有找到如何在节点名称中使用“/”的方法。
解决方案是将'/'替换为某些字符,这些字符不能出现在您的节点名称中。 对于将是“/”或“\\ 0”的路径,在这种情况下这对我们无益。
其他可能性是用节点名称中允许的字符串替换'/',例如“Test / World” - >“Test%@ World”,“Test%World” - >“Test %% World”并添加转义/ de - 节省和装载。
如果有更直接的方式,我很乐意听到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.