使用标记中的键找到多个字符串位置

问题描述:

我想解析输入,例如:GH123FG12B1A58。使用标记中的键找到多个字符串位置

'GH'/'FG'/'A'/'B'将以相同顺序存在于所有标签中,但位置不同。例如:GH14555523FG1555552B55551A55558

需要找到每一个键

我看这可以通过使用行话完成后的值,获得开始&结束索引?有没有其他办法来实现这一点?

import java.util.Scanner; 


public class Shipparse { 

    public static void main(String[] args) { 

      @SuppressWarnings("resource") 
      Scanner Iname = new Scanner(System.in); 
      System.out.println("Enter the invoice :"); 
      String Maintag = Iname.nextLine(); 

      String GH = "GH"; 
      String FG = "FG"; 
      String AB = "AB"; 
      String B = "B"; 
      String A = "A"; 

      int cus = Maintag.indexOf(GH); 
      int cys = Maintag.indexOf(FG); 
      int ats = Maintag.indexOf(AB); 
      int ss = Maintag.indexOf(B); 
      int se = Maintag.indexOf(A); 

      int tlength = Maintag.length(); 

      StringBuilder str = new StringBuilder(Maintag); 

      String cnum; 

      if (ats == -1) { 

       cnum = str.substring((cus +2) , cys); 
       System.out.println("Customer :" + cnum); 

       String cyn = str.substring((cys + 2), ss); 
       System.out.println("Agent :" + cyn); 

      } else { 

       cnum = str.substring((cus +2) , ats); 
       System.out.println("Customer :" + cnum); 

       String cyn = str.substring((ats + 2), ss); 
       System.out.println("Company:" + cyn); 
      } 

      String spoint = str.substring((ss +1) , se); 

      System.out.println("TYPE NUM:" + spoint); 

      String send = str.substring((se +1) , tlength); 
      System.out.println("FIELD NUM :" + send); 

    } 
}