代码之家  ›  专栏  ›  技术社区  ›  Manan Girdhar

拆分字符串并仅在java中使用第二部分

  •  1
  • Manan Girdhar  · 技术社区  · 2 年前

    我有这样一个字符串列表:

    private List<String> repositoryTitle;
    

    它包含3个值:

    yashwantyj97/test,
    yashwantyj97/brokencrystals,
    yashwantyj97/petclinic
    

    我想要一个包含以下3个值的列表:

    test, brokencrystals, petclinic
    

    如何动态实现这一结果?

    4 回复  |  直到 2 年前
        1
  •  2
  •   Michael    2 年前

    将其拆分,并获取索引1处的元素。

    repositoryTitle.stream()
       .map(str -> str.split("/")[1])
       .collect(Collectors.toList())
    

    如果它们不包含斜杠,则会引发异常,因此您可能希望 filter 首先是他们。

        2
  •  1
  •   kiner_shah Ahamed Raaseem    2 年前

    您可以使用 map collect 功能。您可以使用 split / .

    import java.util.*;
    import java.util.stream.*;
    
    class HelloWorld {
        public static void main(String[] args) {
            List<String> l = new ArrayList<>();
            l.add("yashwantyj97/test");
            l.add("yashwantyj97/brokencrystals");
            l.add("yashwantyj97/petclinic");
            
            List<String> r = l.stream().map(x -> x.split("/")[1]).collect(Collectors.toList());
            for (String x : r)
                System.out.println(x);
        }
    }
    
        3
  •  0
  •   Federico klez Culloca    2 年前

    您可以通过使用 java中字符串类的

    String delimeter = "/";
     
    List<String> splittedRepositoryTitle = repositoryTitle
        .stream()
        .map(everyString -> everyString.split(delimeter)[1])
        .collect(Collectors.toList());
    

    我已经定义了delimeter( "/" )根据要求, 然后简单使用 stream() 来自java 8,此处使用java 8将原始字符串与拆分部分映射,并将其存储在另一个字符串列表中。

        4
  •  -1
  •   Kurmanadh Valla    2 年前
    public static  List split(List<String> words)
    {
       return words.stream().map(x -> x.split("/")[x.split("/").length-1]).collect(Collectors.toList());
    }