我正在尝试理解什么是实现以下目标的正确方法。考虑以下字符串:
/some/path/to/some/dir我想用/拆分路径,并获取最后两个字符串,然后用_将它们连接起来,这样输出就会是:
some_dir我熟悉拆分函数,但我不确定在谈到代码样式时,什么是编写此代码的正确方式。我知道我必须首先检查字符串是否有效。例如,字符串dir无效。解决这个问题的正确方法是什么?
发布于 2019-06-13 21:27:00
您可以使用以下内容。为了简单起见,我省略了错误检查。
class Test {
public static void main(String[] args) {
String s = "/some/path/to/some/dir";
String[] parts = s.split("/");
int len = parts.length;
String theLastTwoParts = parts[len - 2] + "_" + parts[len - 1];
System.out.println(theLastTwoParts);
}
}发布于 2019-06-13 21:37:45
如果您实际上正在处理路径,那么您可能希望使用标准库的Path生态系统。您可以通过以下方式使用它
Path path = Paths.get(p);
int nameCount = path.getNameCount();
if (nameCount < 2) throw new RuntimeException();
String result = String.format("%s_%s", path.getName(nameCount-2), path.getName(nameCount-1));看看吧,here。
优点是,当您在Windows上工作时,它还将处理不同的路径分隔符,因此它更加独立于平台。
"dir“的问题是”无效的“,这引发了后续的问题,即您希望如何处理它。像我这样抛出一个RuntimeException可能是不会坚持下去的。
发布于 2019-06-13 21:40:31
您可以使用如下所示的函数来实现此目的:
public String convertPath(String path) {
String[] str = path.split("/");
int length = str.length;
if(length < 2) {
//Customize the result here for this specific case
return "";
}
return str[length-2] + "_" + str[length-1];
}https://stackoverflow.com/questions/56581523
复制相似问题