EdgeCase
EdgeCase

Reputation: 4827

Java Split into 3 Fields

I have a String that looks like "NAME:City~FORMAT:S~PRINT:true"

I want to split and assign the value of "City" to field1, "S" to field2, and true to field3 (Boolean).

I know I can grind through this code with brute force, but is there a way to parse the value of the 2nd split into the fields without doing some sort of check on a subscript to see if it is an odd value (e.g. subscript 0 is the NAME, but I want subscript 1, which is "City").

   for (String element : text.split("~")) {
        for (String rule : element.split(":")) {
            System.out.println(rule);
        }

    }

Upvotes: 3

Views: 290

Answers (2)

robertstrack
robertstrack

Reputation: 46

You could also avoid looping by doing something similar to this:

String[] flds = text.split("NAME:|~FORMAT:|~PRINT:");
String field1 = flds[1];
String field2 = flds[2];
String field3 = flds[3];

Upvotes: 2

Keppil
Keppil

Reputation: 46239

You could just do

for (String element : text.split("~")) {
   System.out.println(element.split(":")[1]);
}

split() returns an array, and you want the second element, which has index 1.

Upvotes: 1

Related Questions