Split and pair substrings by condition

plaidshirt :

I have a string like this: "aa-bb,ccdd,eeff,gg-gg,cc-gg". I need to split the string by '-' signs and create two strings from it, but if the comma-delimited part of the original string doesn't contain '-', some placeholder character needs to be used instead of substring. In case of above example output should be:

String 1:

"{aa,ccdd,eeff,gg,cc}"

String 2:

"{bb,0,0,gg,gg}"

I can't use the lastIndexOf() method because input is in one string. I am not sure how to much the parts.

if(rawIndication.contains("-")){
    String[] parts = rawIndication.split("-");
    String part1 = parts[0];
    String part2 = parts[1];
}
Udith Gunaratna :
    List<String> list1 = new ArrayList<>();
    List<String> list2 = new ArrayList<>();

    // First split the source String by comma to separate main parts
    String[] mainParts = sourceStr.split(",");

    for (String mainPart: mainParts) {
        // Check if each part contains '-' character
        if (mainPart.contains("-")) {
            // If contains '-', split and add the 2 parts to 2 arrays
            String[] subParts = mainPart.split("-");
            list1.add(subParts[0]);
            list2.add(subParts[1]);

        } else {
            // If does not contain '-', add complete part to 1st array and add placeholder to 2nd array
            list1.add(mainPart);
            list2.add("0");
        }
    }

    // Build the final Strings by joining String parts by commas and enclosing between parentheses
    String str1 = "{" + String.join(",", list1) + "}";
    String str2 = "{" + String.join(",", list2) + "}";

    System.out.println(str1);
    System.out.println(str2);

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324613&siteId=1