如何在某些条件下拆分字符串

Use*_*sss 6 java

我有一个跟随字符串

书籍/ EH/grayL88/WilliamsMC88 :::米 Howard Williams :: PA Massey :: Jim A. Crammond :::数据库应用程序的基准测试.

我应该如何使用或换句话说使用什么,以便最后我可以得到

M. Howard Williams - 数据库应用程序的基准测试.

PA Massey - 数据库应用程序的基准测试.

Jim A. Crammond - 数据库应用程序的基准测试.

谢谢

Roh*_*ain 2

第一种方式:

  • 您可以首先根据 拆分字符串:::。这将为您提供一个长度为 3 的数组。您会对数组的2nd和元素感兴趣。3rd
  • 然后将2nd element数组的 拆分为::。这将为您提供一个包含 的数组each name
  • 迭代2nd array并使用第一个数组的 打印每个名称3rd element

    String str = "books/eh/grayL88/WilliamsMC88:::M. Howard Williams::" + 
                 "P. A. Massey::Jim A. Crammond:::Benchmarking Prolog for " + 
                 "Database Applications.";
    
    String[] arr = str.split(":::");
    String[] innerArr = arr[1].split("::");
    
    for (String name: innerArr) {
        System.out.println(name + " -- " + arr[2]);
    }
    
    Run Code Online (Sandbox Code Playgroud)

输出: -

M. Howard Williams——数据库应用程序的基准 Prolog。
PA Massey——数据库应用程序的基准 Prolog。
Jim A.Crammond——数据库应用程序的基准 Prolog。


第二种方式:

或者,您可以拆分:::?::这将在或上拆分:::,这将仅获取第一个数组中的每个单独元素(仅适用于3名称。更多信息,您最好使用第一个)

    String[] arr = str.split(":::?");

    System.out.println(arr[1] + " - " + arr[4]);
    System.out.println(arr[2] + " - " + arr[4]);
    System.out.println(arr[3] + " - " + arr[4]);
Run Code Online (Sandbox Code Playgroud)

输出: -

M. Howard Williams - 数据库应用程序的基准 Prolog。
PA Massey - 数据库应用程序的基准 Prolog。
Jim A. Crammond - 数据库应用程序的基准 Prolog。