{"id":20250,"date":"2022-11-09T04:13:12","date_gmt":"2022-11-08T22:43:12","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/"},"modified":"2022-11-09T04:13:12","modified_gmt":"2022-11-08T22:43:12","slug":"solved-split-an-list-into-multiple-list-with-word-match","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/","title":{"rendered":"[Solved] Split an List into multiple List with word match"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-46682641\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"46682641\" data-parentid=\"46680014\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Your question really leaves a fair amount up in the air as to what is really required but as I understand it through reading the comments&#8230;<\/p>\n<p>You have 4 Items within your List (A, B, C, and D). You want to create a List pertaining to each particular Item. If there are 10 data elements within your Main Data List then each Item List (A to D) should ultimately end up with 10 value elements as well. This would be because if a particular Item is not contained within a Main Data Element (like &#8220;A&#8221; or &#8220;B&#8221; or &#8220;C&#8221; or &#8220;D&#8221; for example) then a value of &#8220;$0&#8221; is added to that particular Item List anyways. This will always ensure that each list always contains the same number of elements.<\/p>\n<p>Real quick off hand I&#8217;d say creating a boolean flag for each Item would be the easiest. Initially set all four flags to false at the start within the Main Data List iteration. As each Main Data Element is parsed (split) and a particular Item Value is added to its specific List, set its flag to true. At the end of the iteration block check which flags are still false. If any then add &#8220;$0&#8221; to its related List. Upon the next Main Data List iteration the whole process is done again and continues until all Main Data List elements have been processed.<\/p>\n<p>It might look something like this:<\/p>\n<pre><code>\/\/ Main Data List \nList&lt;String&gt; mainDataList = new ArrayList&lt;&gt;();\n    mainDataList.add(\"A $0; B $0; C $0; D $0\");\n    mainDataList.add(\"B $5.8M; A $24.8M\");\n    mainDataList.add(\"A $9k; B $20k\");\n    mainDataList.add(\"A TBD; B TBD\");\n    mainDataList.add(\"C $36k; est. A $36k\");\n    mainDataList.add(\"A TBD; B TBD\");\n    mainDataList.add(\"D TBD; B TBD\");\n    mainDataList.add(\"D $1.1m; B $3m\");\n    mainDataList.add(\"A $3.86m; D $7.08m\");\n    mainDataList.add(\"C TBD; B TBD\");\n\n\/\/ Declare Lists for each Item (A to D) Value\nList&lt;String&gt; itemListA = new ArrayList&lt;&gt;();\nList&lt;String&gt; itemListB = new ArrayList&lt;&gt;();\nList&lt;String&gt; itemListC = new ArrayList&lt;&gt;();\nList&lt;String&gt; itemListD = new ArrayList&lt;&gt;();\nboolean aHit, bHit, cHit, dHit;  \/\/ Flags\n\nfor (int i = 0; i &lt; mainDataList.size(); i++) {\n    aHit = false; bHit = false; \n    cHit = false; dHit = false;\n    \/\/ RegEx \"\\\\s+\" is used below. It means one or more spaces.\n    \/\/ Split the current Main Data List element string\n    String[] tmpString = mainDataList.get(i).trim().split(\";\\\\s+\");\n    \/\/ Iterate through the created array from the Main Data List element split.\n    for (int j = 0; j &lt; tmpString.length; j++) {\n        \/\/ Split each Item element to Item and Value\n        String[] data = tmpString[j].replaceAll(\"est.\\\\s+\", \"\").split(\"\\\\s+\");\n        \/\/ Is it Item A\n        if (data[0].equalsIgnoreCase(\"a\")) {\n            itemListA.add(data[1]);\n            aHit = true;\n        }\n        \/\/ Is it Item B\n        else if (data[0].equalsIgnoreCase(\"b\")) {\n            itemListB.add(data[1]);\n            bHit = true;\n        }\n        \/\/ Is it Item C\n        else if (data[0].equalsIgnoreCase(\"c\")) {\n            itemListC.add(data[1]);\n            cHit = true;\n        }\n        \/\/ Is it Item D\n        else if (data[0].equalsIgnoreCase(\"d\")) {\n            itemListD.add(data[1]);\n            dHit = true;\n        }\n    }\n    \/\/ Were all items hit in this current iteration\n    \/\/ of the Main Data List.\n    if (!aHit) { itemListA.add(\"$0\"); }     \/\/ If no A in line add 0 to A list\n    if (!bHit) { itemListB.add(\"$0\"); }     \/\/ If no B in line add 0 to B list\n    if (!cHit) { itemListC.add(\"$0\"); }     \/\/ If no C in line add 0 to C list\n    if (!dHit) { itemListD.add(\"$0\"); }     \/\/ If no D in line add 0 to D list\n}\n\n\/\/ Display the Lists in Console....\n\/\/ Since all Lists will be the same size we\n\/\/ can use one loop.\nSystem.out.println(\"\\nList A\\t\\tList B\\t\\tList C\\t\\tList D\");\nSystem.out.println(\"======\\t\\t======\\t\\t======\\t\\t======\");\nfor (int i = 0; i &lt; itemListA.size(); i++) {\n    System.out.print(itemListA.get(i)+\"\\t\\t\" + itemListB.get(i)+\"\\t\\t\" + \n            itemListC.get(i)+\"\\t\\t\" + itemListD.get(i));\n    System.out.println(\"\");\n}\n<\/code><\/pre>\n<p>The output should look like:<\/p>\n<pre><code>List A      List B      List C      List D\n======      ======      ======      ======\n$0          $0          $0          $0\n$24.8M      $5.8M       $0          $0\n$9k         $20k        $0          $0\nTBD         TBD         $0          $0\n$36k        $0          $36k        $0\nTBD         TBD         $0          $0\n$0          TBD         $0          TBD\n$0          $3m         $0          $1.1m\n$3.86m      $0          $0          $7.08m\n$0          TBD         TBD         $0\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Split an List<String> into multiple List<String> with word match <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Your question really leaves a fair amount up in the air as to what is really required but as I understand it through reading the comments&#8230; You have 4 Items within your List (A, B, C, and D). You want to create a List pertaining to each particular Item. If there are 10 data &#8230; <a title=\"[Solved] Split an List into multiple List with word match\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\" aria-label=\"More on [Solved] Split an List into multiple List with word match\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[323,540],"class_list":["post-20250","post","type-post","status-publish","format-standard","hentry","category-solved","tag-java","tag-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Split an List into multiple List with word match - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Split an List into multiple List with word match - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Your question really leaves a fair amount up in the air as to what is really required but as I understand it through reading the comments&#8230; You have 4 Items within your List (A, B, C, and D). You want to create a List pertaining to each particular Item. If there are 10 data ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-08T22:43:12+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Split an List into multiple List with word match\",\"datePublished\":\"2022-11-08T22:43:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\"},\"wordCount\":262,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"java\",\"list\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\",\"name\":\"[Solved] Split an List into multiple List with word match - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-11-08T22:43:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Split an List into multiple List with word match\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Split an List into multiple List with word match - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Split an List into multiple List with word match - JassWeb","og_description":"[ad_1] Your question really leaves a fair amount up in the air as to what is really required but as I understand it through reading the comments&#8230; You have 4 Items within your List (A, B, C, and D). You want to create a List pertaining to each particular Item. If there are 10 data ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/","og_site_name":"JassWeb","article_published_time":"2022-11-08T22:43:12+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Split an List into multiple List with word match","datePublished":"2022-11-08T22:43:12+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/"},"wordCount":262,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["java","list"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/","url":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/","name":"[Solved] Split an List into multiple List with word match - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-08T22:43:12+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-split-an-list-into-multiple-list-with-word-match\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Split an List into multiple List with word match"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=20250"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/20250\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=20250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=20250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=20250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}