2013-05-27 5 views
-7

Рассмотрим следующий пример,Извлечение строки из заданной строки в Java

String str = "Record of student " + 
       "Name: Aasim ; Surname: Khan; Age: 15 ; Weight: 60; " + 
       "School : Abcd High School This is record of Student"; 

Я хочу, чтобы в экстракте массиве строки, которая содержит Aasim, Хан, 60, Abcd High School

+2

Затем написать некоторый Java, чтобы извлечь его. Когда у вас есть конкретная проблема, вы должны задавать вопросы, конечно, после того, как [сделаете свое исследование] (http://stackoverflow.com/faq) – SomeShinyObject

ответ

0

во-первых, разделить вашу строку по точкам с запятой, чтобы получить каждую пару ключевых значений. Затем разделите каждую часть на двоеточие.

4

вы можете сделать что-то вроде этого:

for (String retval: str.split(";")){ 
      String[] parts = retval.split(":"); 
      String neededPart = parts[1]; 
      // do your stuff with your neededPart 
    } 
0

Сначала попытайтесь получить данные между Colan (:) и semicolan (;) Добавьте retrived данные в массив строк.. попробуйте распечатать его. Используйте класс StringTokenizer для получения данных между colan и точкой с запятой.

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 
} 
+0

True :). Но, чтобы начать с него, вы можете узнать, какая группа связана с какой строкой. – Jatin

0

Вы можете использовать регулярные выражения. Идея заключается в том, чтобы соответствовать цепи символов (\w алфавитно-цифровой символ в регулярном выражении) между : и ;, как в следующем примере кода:

Pattern p = Pattern.compile(".* : (\\w+) ; .*"); 
Matcher m = p.matcher(str); 
if(m.matches()) { 
    System.out.println("The first substring is: " + m.group(1)); 
} 

Тогда все подстроки будет m, как вы видите в примере.

0

Вы можете использовать StringTokenizer как ниже Exemple:

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); 
    } 
Смежные вопросы