Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:从字符串中删除前2个目录_Scala - Fatal编程技术网

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的要求而设计的,所以代码中会更清楚。