如何在" /"第3次出现之前拆分字符串;在Java中

时间:2017-06-07 11:00:03

标签: java split

我有:

/xxx/yyy/aaa/bbb/abc.xml (or)
/xxx/yyy/aaa/abc.xml (or)
/xxx/yyy/aaa/bbb/ccc/abc.xml

但我只需要:

/xxx/yyyy

如何在Java中实现此功能? 提前致谢。

3 个答案:

答案 0 :(得分:0)

你可以使用String.split(" /")来分割和连接前2个元素:

for(String string: input){
  String[] splitedStrings = string.split("/");
  StringBuilder result = new StringBuilder("/");
  for(int i = 1; i < 3 && i < splitedStrings.length; i++){
    result.append(splitedStrings[i]).append("/");
  }
  System.out.println("Result: " + result.toString());
}

https://pastebin.com/kpg5VtMk

答案 1 :(得分:0)

您可以使用StringUtils课程。

您问题的示例代码段,

    String str = "/xxx/yyy/aaa/bbb/abc.xml";

    int index = StringUtils.ordinalIndexOf(str , "/" , 3);

    String result = str.substring(0,index);

或者你可以迭代地使用indexOf方法,

    String str = "/xxx/yyy/aaa/bbb/abc.xml";

    int index = 0 , count = 1;

    while(count != 3)
    {
         index = str.indexOf("/" , index+1);
         count++;
    }

    String result = str.substring(0,index);

答案 2 :(得分:0)

FilenameUtils.getFullPathNoEndSeparator(str).replaceAll("((/[^/]*){2}).*", "$1")

我用它对我来说很好。