正确使用分割功能

时间:2019-06-13 13:23:23

标签: java

我试图了解什么是实现以下目标的正确方法。考虑以下字符串:

/some/path/to/some/dir

我想用/分割路径,并获取最后两个字符串,并将其与_连接,这样输出将是:

some_dir

我熟悉split函数,但不确定在讲代码样式时编写此代码的正确方法是什么。 我知道我必须先检查字符串是否有效。例如,字符串dir无效。 解决该问题的正确方法是什么?

3 个答案:

答案 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];
  }