我有一个跟随字符串
书籍/ EH / grayL88 / WilliamsMC88 :::微米。 Howard Williams :: P. A. Massey :: Jim A. Crammond :::数据库应用程序的基准测试。
我应该如何使用或换句话说使用什么,以便最后我可以
微米。霍华德威廉姆斯 - 数据库应用程序的基准测试。
P上。 A. Massey - 数据库应用程序的基准测试。
Jim A. Crammond - 数据库应用程序的基准测试。
由于
答案 0 :(得分: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]);
}
输出: -
微米。霍华德威廉姆斯 - 数据库应用程序的基准测试 P. A. Massey - 数据库应用程序的基准测试。
Jim A.Crammond - 数据库应用程序的基准测试。
或者,您可以在:::?
上分开。这将在::
或:::
上拆分,这将仅获取第一个数组中的每个元素(仅适用于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]);
输出: -
微米。 Howard Williams - 数据库应用程序的基准测试。左P. A. Massey - 数据库应用程序的基准测试。
吉姆A. Crammond - 数据库应用程序的基准测试。
答案 1 :(得分:2)
您可以尝试这样的事情:
String s = "books/eh/grayL88/WilliamsMC88:::M. Howard Williams::P. A. Massey::Jim A. Crammond:::Benchmarking Prolog for Database Applications.";
String split[] = s.split(":::");
String end = split[split.length - 1];
String[] names = split[1].split("::");
for (String name : names)
System.out.println(name + " -- " + end);
输出:
微米。霍华德威廉姆斯 - 数据库应用程序的基准测试 P. A. Massey - 数据库应用程序的基准测试 Jim A. Crammond - 数据库应用程序的基准测试。
答案 2 :(得分:1)
尝试以下方面的内容: (伪代码......)
myString.remove("(.*/)+[^:]*:{3}");
lastString = myString.split(":::").takeLast();
array names = myString.split("([^:]*)+");
result = "";
for (i=0;i<name.size();result+=names[i++]+" -- "+lastString+"\n");
// do whatever with "result"...
没有免费赠品,永远不会...
答案 3 :(得分:0)
使用StringTokenizer。例如:
StringTokenizer tokenizer = new StringTokenizer(str, "://");
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
// ... and do whatever you like with the token
}
答案 4 :(得分:0)
String str = "books/eh/grayL88/WilliamsMC88:::M. Howard Williams::P. A. Massey::" +
"Jim A. Crammond:::Benchmarking Prolog for Database Applications.";
String split[]=str.split(":::");
String names[] = split[1].split("::");
String sentence = split[2];
for(String name : names){
System.out.println(name + " -- " +sentence);
}
输出
微米。霍华德威廉姆斯 - 数据库应用程序的基准测试 P. A. Massey - 数据库应用程序的基准测试 Jim A. Crammond - 数据库应用程序的基准测试。