如何在Java中第三次出现“/”之前拆分字符串

如何在Java中第三次出现“/”之前拆分字符串,java,split,Java,Split,我有: 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("/");

我有:

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());
}
但我只需要:

/xxx/yyy/aaa/bbb/abc.xml (or)
/xxx/yyy/aaa/abc.xml (or)
/xxx/yyy/aaa/bbb/ccc/abc.xml
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());
}
如何在Java中实现这一点?
提前谢谢

您可以使用String.split/来拆分和合并前2个元素:

/xxx/yyyy
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());
}
您可以使用这个类

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());
}
您的问题的示例代码段

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());
}
或者可以迭代使用indexOf方法

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());
}
    String str = "/xxx/yyy/aaa/bbb/abc.xml";

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

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

我用了这个,它对我很管用。

提前谢谢不行;让我们看看你尝试了什么,失败了什么。所以这不是一个代码编写服务。欢迎使用Stackoverflow!请访问并查看。有了这两个,你可以简单地完成它,我会让你做的。试试str.replaceAll/[^/]*{2}.*$1。
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());
}