How to get multiple substrings from string in Android/Java ?

java, regex, string

Solution

As Rohit Jain said, with regular expressions. Here is functional code:

// import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class RegexTestHarness {

  public static void main(String[] args){
    // Console console = System.console();  // Not needed

    Pattern pattern = Pattern.compile("<Mytag([^>]*)>");

    String myString = "What is <Mytag a exp 5 exp 3> written as a single power of <i>a</i> <Mytag yx4> and the double power of <b>x+y</b> <Mytag 3xy4>";
    Matcher matcher = pattern.matcher(myString);

    while (matcher.find()) {
      // Rohit Jain observation
      System.out.println(matcher.group(1));
    }

  }
}

Source: Java Regex tutorial.

Problem

I need some help to extract multiple substrings from a string. An example of a string is as given below: ``` String str = "What is <Mytag a exp 5 exp 3> written as a single power of <i>a</i> <Mytag yx4> and the double power of <b>x+y</b> <Mytag 3xy4>"; ``` I am trying to get substrings Between "<Mytag" and ">" so my desire output will be 1) a exp 5 exp 3 2) yx4 3) 3xy4 I have tried with Scanner and substring everything I getting first string successfully but the problem with getting second and third occurrence. in substring methods I am successfully getting index of all tages "<Mytag" but not able to get correct index of ">" because it comes with Bold and italic also.

Original source