我试图了解什么是实现以下目标的正确方法。考虑以下字符串:
/some/path/to/some/dir
我想用/
分割路径,并获取最后两个字符串,并将其与_
连接,这样输出将是:
some_dir
我熟悉split函数,但不确定在讲代码样式时编写此代码的正确方法是什么。
我知道我必须先检查字符串是否有效。例如,字符串dir
无效。
解决该问题的正确方法是什么?
答案 0 :(得分:2)
您可以玩以下游戏。为了简单起见,我省略了错误检查。
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);
}
}
答案 1 :(得分:0)
如果您实际上正在处理路径,则可能要使用标准库的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”为“ invalid”的问题提出了有关如何处理的后续问题。像我一样扔RuntimeException
可能不会阻止。
答案 2 :(得分:0)
您可以为此使用下面显示的功能:
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];
}