考虑以下示例,
String str = "Record of student " +
"Name: Aasim ; Surname: Khan; Age: 15 ; Weight: 60; " +
"School : Abcd High School This is record of Student";
我想要包含 Aasim,Khan,60,Abcd High School
的字符串的提取数组答案 0 :(得分:4)
你可以这样做:
for (String retval: str.split(";")){
String[] parts = retval.split(":");
String neededPart = parts[1];
// do your stuff with your neededPart
}
答案 1 :(得分:0)
首先,用分号分割字符串以获取每个键值对。然后用冒号分割每个部分。
答案 2 :(得分:0)
首先尝试在Colan(:)和semicolan(;)之间获取数据。将已检索的数据添加到字符串数组中。尝试打印它。使用StringTokenizer类获取colan和semicolan之间的数据。
答案 3 :(得分:0)
理想情况下,您希望使用正则表达式:
为简单起见,请考虑:String str = "Record of student " +
"Name: Aasim ; Surname: Khan;
import java.util.Pattern.*;
Pattern p = Pattern.compile("Record of student Name:(.*) ; Surname:(.*).*")
Matcher m = p.matcher(str)
if(m.matches()){
String name = m.group(1);
//so on
}
答案 4 :(得分:0)
您可以使用正则表达式。我们的想法是匹配\w
和:
之间的字符链(;
是regexp中的字母数字字符),如下面的示例代码所示:
Pattern p = Pattern.compile(".* : (\\w+) ; .*");
Matcher m = p.matcher(str);
if(m.matches()) {
System.out.println("The first substring is: " + m.group(1));
}
然后,如示例中所示,所有子字符串都位于m
中。
答案 5 :(得分:0)
您可以使用StringTokenizer作为下面的例子:
String str = "Record of student Name: Aasim ; Surname: Khan; Age: 15 ; Weight: 60; School : Abcd High School This is record of Student";
ArrayList<String> tokens1=new ArrayList<>();
ArrayList<String> tokens2=new ArrayList<>();
StringTokenizer s1=new StringTokenizer(str, ";");
while (s1.hasMoreElements()) {
tokens1.add((String) s1.nextElement());
}
for (String string : tokens1) {
System.out.println(string);
StringTokenizer s2=new StringTokenizer(string, ":");
int i=0;
while (s2.hasMoreElements()) {
s2.nextElement();
tokens2.add((String) s2.nextElement());
}
}
for (String string : tokens2) {
System.out.println(string);
}