fork download
  1. import java.util.*;
  2. public class Main {
  3. public static void main(String[] args) {
  4. final String strs = "STRING : V\r\n" + "STRING : A\r\n" + "STRING : R\r\n" + "STRING : I\r\n" + "STRING : A\r\n"
  5. + "STRING : B\r\n" + "STRING : L\r\n" + "STRING : E\r\n" + "SPACE : null\r\n" + "SPECIAL : null\r\n"
  6. + "SPACE : null\r\n" + "NUMBER : 3\r\n" + "NUMBER : 4\r\n" + "SPACE : null\r\n" + "DIV : null\r\n"
  7. + "SPACE : null\r\n" + "NUMBER : 5\r\n" + "NUMBER : 6\r\n" + "SPACE : null\r\n" + "QUESTION : null";
  8. final List<ADVAObject> pattern = new ArrayList<>();
  9. for (final String str : strs.split("\r\n")) {
  10. final String[] parts = str.split(" : ");
  11. pattern.add(new ADVAObject(parts[0], parts[1].equals("null") ? null : parts[1]));
  12. }
  13. System.out.println("Original list: ");
  14. pattern.forEach(System.out::println);
  15. final List<ADVAObject> result = new ArrayList<>(pattern.size());
  16. for (int i = 0, size = pattern.size(); i < size; i++) {
  17. final ADVAObject curr = pattern.get(i);
  18. if (i == 0 || !pattern.get(i - 1).type.equals(curr.type)) {
  19. result.add(curr);
  20. } else {
  21. result.get(result.size() - 1).value += curr.value;
  22. }
  23. }
  24. System.out.println("Combined:");
  25. result.forEach(System.out::println);
  26. }
  27.  
  28. public static class ADVAObject {
  29. String type = "";
  30. String value = "";
  31.  
  32. public ADVAObject(final String type, final String value) {
  33. this.type = type;
  34. this.value = value;
  35. }
  36.  
  37. @Override
  38. public String toString() {
  39. StringBuilder builder = new StringBuilder();
  40. builder.append("ADVAObject [type=").append(type).append(", value=").append(value).append("]");
  41. return builder.toString();
  42. }
  43. }
  44. }
Success #stdin #stdout 0.1s 36476KB
stdin
Standard input is empty
stdout
Original list: 
ADVAObject [type=STRING, value=V]
ADVAObject [type=STRING, value=A]
ADVAObject [type=STRING, value=R]
ADVAObject [type=STRING, value=I]
ADVAObject [type=STRING, value=A]
ADVAObject [type=STRING, value=B]
ADVAObject [type=STRING, value=L]
ADVAObject [type=STRING, value=E]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=SPECIAL, value=null]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=NUMBER, value=3]
ADVAObject [type=NUMBER, value=4]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=DIV, value=null]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=NUMBER, value=5]
ADVAObject [type=NUMBER, value=6]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=QUESTION, value=null]
Combined:
ADVAObject [type=STRING, value=VARIABLE]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=SPECIAL, value=null]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=NUMBER, value=34]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=DIV, value=null]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=NUMBER, value=56]
ADVAObject [type=SPACE, value=null]
ADVAObject [type=QUESTION, value=null]