Note that there are some explanatory texts on larger screens.

plurals
  1. POParse a string into serval variables
    primarykey
    data
    text
    <p>so i have a string that can look like this:</p> <pre><code>UPDATE 12.7543.81 ParmA="dk.asterix.org" [Denmark] (9.1) ParmB="de.asterix.org" [Germany] (1.0) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA) Internal=0 State=2 UPDATE 12.7543.81 ParmB="de.asterix.org" [Germany] (1.0) ParmA="dk.asterix.org" [Denmark] (9.1) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA) Internal=0 State=2 UPDATE 12.7543.81 Internal=0 State=2 ParmB="de.asterix.org" [Germany] (1.0) ParmA="dk.asterix.org" [Denmark] (9.1) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA) UPDATE 12.7543.81 Internal=0 State=2 ParmB="de.asterix.org" [Germany] (1.0) Calling=45xxxxxxxx (LOA) ParmA="dk.asterix.org" [Denmark] (9.1) Called=49xxxxxxx (GBH) </code></pre> <p>all compleetly randomly added to the list, however they still follow 1 specific chunk pattern:</p> <pre><code>xxx = String ddd = decimal iii = integer chunk 1: UPDATE chunk 2: xxx.xxx.xxx chunk x: ParmA="xxx" [xxx] (ddd) chunk x: ParmB="xxx" [xxx] (ddd) chunk x: Calling=xxx (xxx) chunk x: Called=xxx (xxx) chunk x: Internal=iii chunk x: State=iii </code></pre> <p>i wanted to extract all the string data into variables, however a regex don't like a random order, so i was thinking of using split(" "), and cykle trough each Word.</p> <p>but i Thord before i started doing that, i could ask if there was another way to extract the data?</p> <p>idea to seperate chunks example:</p> <pre><code>import java.util.ArrayList; import java.util.List; public class Test { final static String[] lines = new String[]{ "UPDATE 12.7543.81 ParmA=\"dk.asterix.org\" [Denmark] (9.1) ParmB=\"de.asterix.org\" [Germany] (1.0) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA) Internal=0 State=2", "UPDATE 12.7543.81 ParmB=\"de.asterix.org\" [Germany] (1.0) ParmA=\"dk.asterix.org\" [Denmark] (9.1) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA) Internal=0 State=2", "UPDATE 12.7543.81 Internal=0 State=2 ParmB=\"de.asterix.org\" [Germany] (1.0) ParmA=\"dk.asterix.org\" [Denmark] (9.1) Called=49xxxxxxx (GBH) Calling=45xxxxxxxx (LOA)", "UPDATE 12.7543.81 Internal=0 State=2 ParmB=\"de.asterix.org\" [Germany] (1.0) Calling=45xxxxxxxx (LOA) ParmA=\"dk.asterix.org\" [Denmark] (9.1) Called=49xxxxxxx (GBH)" }; public static void main(String[] args){ for(String line : lines){ String[] parms = splitParm(line); for(String parm : parms){ System.out.println(parm); } } } static public String[] splitParm(String text){ String[] textarr = text.split(" "); List&lt;String&gt; parms = new ArrayList&lt;&gt;(); parms.add(textarr[0]); // UPDATE parms.add(textarr[1]); // 12.7543.81 for(int i = 2;i&lt;textarr.length;i++){ if(textarr[i].matches("^([A-Za-z]+)=([\\S ]+)$")){ parms.add(textarr[i]); } else{ parms.set(parms.size()-1, parms.get(parms.size()-1) + " "+textarr[i]); } } return parms.toArray(new String[]{}); } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload