@Test void contextLoads() { String rowText = "\"2021-10-281\",\"PKFvfW3pAL\",\"2022-01-17T14:45:52-1\",\"a21112121212\",\"X002L0SJ2J,X002L0SJ2J000000002,X002L0SJ2J000000003\",\"Unsellable\",\"1\",,,\"Disposal\""; for (int k = 0; k < 10; k++) { String cText = getContent(rowText); if (k == 9) { rowText = rowText.replaceFirst(cText, ""); } else { rowText = rowText.replaceFirst(cText + ",", ""); } if (StringUtils.isBlank(cText)) { cText = "\"\""; } System.out.println(cText); } }
private static String getContent(String content) { int dhIndex = content.indexOf(","); if (dhIndex == 0) { return content.substring(0, dhIndex); } else if (dhIndex < 0) { return content; } else { String newContent = content.substring(0, dhIndex); int index = dhIndex; while (appearNumber(newContent, "\"") != 2) { newContent = content.substring(0, content.indexOf(",", index + 1)); index = content.indexOf(",", index + 1); } return newContent; } } public static int appearNumber(String srcText, String findText) { int count = 0; Pattern p = Pattern.compile(findText); Matcher m = p.matcher(srcText); while (m.find()) { count++; } return count; }