Scala:从字符串中删除前2个目录
我有一个字符串,看起来像这样的Scala:从字符串中删除前2个目录,scala,Scala,我有一个字符串,看起来像这样的“/path1/path2/path3/path4/etc/file” 我只想删除前2个路径并返回如下所示的字符串: “path3/path4/etc/file” 如何使用Scala实现这一点?简单:s.split(“/”).drop(3.mkString(“/”)如何? 在本语句中,首先通过/拆分路径,然后删除前3个标记(在您的情况下,第一个标记将是),最后将标记合并在一起以创建新路径。简单:s.split(“/”).drop(3).mkString(“/” 在这
“/path1/path2/path3/path4/etc/file”
我只想删除前2个路径并返回如下所示的字符串:
“path3/path4/etc/file”
如何使用Scala实现这一点?简单:
s.split(“/”).drop(3.mkString(“/”)如何?
在本语句中,首先通过
/
拆分路径,然后删除前3个标记(在您的情况下,第一个标记将是
),最后将标记合并在一起以创建新路径。简单:s.split(“/”).drop(3).mkString(“/”
在这个语句中,首先通过
/
分割路径,然后删除前3个令牌(在您的情况下,第一个令牌将是
),最后将令牌合并在一起以创建新路径。如果您处理的是文件系统路径,那么使用Java的path
类可能是明智的
scala> import java.nio.file.Paths
import java.nio.file.Paths
scala> val p = Paths.get("./path1/path2/path3/path4/etc/file")
p: java.nio.file.Path = ./path1/path2/path3/path4/etc/file
scala> p.subpath(3, p.getNameCount())
res0: java.nio.file.Path = path3/path4/etc/file
如果您处理的是文件系统路径,那么最好使用Java的
Path
类,该类是为这类事情设计的
scala> import java.nio.file.Paths
import java.nio.file.Paths
scala> val p = Paths.get("./path1/path2/path3/path4/etc/file")
p: java.nio.file.Path = ./path1/path2/path3/path4/etc/file
scala> p.subpath(3, p.getNameCount())
res0: java.nio.file.Path = path3/path4/etc/file
+1.我认为这个答案应该被接受,而不是@norbert radyk的答案,因为这种方式1)性能更好,2)更直观,3)是专为OP的要求而设计的,因此代码中会更清楚。我认为这个答案应该被接受,而不是@norbert radyk的答案,因为这种方式1)性能更好,2)更直观,3)是专为OP的要求而设计的,所以代码中会更清楚。