首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用split函数

正确使用split函数
EN

Stack Overflow用户
提问于 2019-06-13 21:23:24
回答 3查看 56关注 0票数 0

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

代码语言:javascript
复制
/some/path/to/some/dir

我想用/拆分路径,并获取最后两个字符串,然后用_将它们连接起来,这样输出就会是:

代码语言:javascript
复制
some_dir

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

EN

回答 3

Stack Overflow用户

发布于 2019-06-13 21:27:00

您可以使用以下内容。为了简单起见,我省略了错误检查。

代码语言:javascript
复制
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);
    }

}
票数 2
EN

Stack Overflow用户

发布于 2019-06-13 21:37:45

如果您实际上正在处理路径,那么您可能希望使用标准库的Path生态系统。您可以通过以下方式使用它

代码语言:javascript
复制
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可能是不会坚持下去的。

票数 0
EN

Stack Overflow用户

发布于 2019-06-13 21:40:31

您可以使用如下所示的函数来实现此目的:

代码语言:javascript
复制
  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];
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56581523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档