Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. public static Set<String> getIdsFromRangeQuery(String multipleIds) {
  2. multipleIds = multipleIds.toUpperCase().replace(" ", "");
  3.  
  4. Set<String> inSet = new HashSet<String>();
  5.  
  6. String[] parts = multipleIds.split(";");
  7. for (String part : parts) {
  8. if (part.matches("M([0-9]+)C([0-9]+)")) {
  9. inSet.add(part);
  10. } else if (part.matches("M([0-9]+)C([0-9]+)-M([0-9]+)C([0-9]+)")){
  11. String [] fromTo = part.split("-");
  12. int mFrom = Integer.parseInt( fromTo[0].substring(1,fromTo[0].indexOf("C")) );
  13. int mTo = Integer.parseInt( fromTo[1].substring(1,fromTo[1].indexOf("C")) );
  14.  
  15. int cFrom = Integer.parseInt( fromTo[0].substring(fromTo[0].lastIndexOf("C")+1) );
  16. int cTo = Integer.parseInt( fromTo[1].substring(fromTo[1].lastIndexOf("C")+1) );
  17.  
  18. for(int i=mFrom; i<=mTo; i++) {
  19. for (int j=cFrom; j<=cTo; j++) {
  20. inSet.add("M"+i+"C"+j);
  21. }
  22. }
  23. } else if ( part.matches("[0-9]+") ) {
  24. inSet.add(part);
  25. } else if ( part.matches("([0-9]+)-([0-9]+)")) {
  26. String [] fromTo = part.split("-");
  27. int from = Integer.parseInt( fromTo[0] );
  28. int to = Integer.parseInt( fromTo[1] );
  29. for (int i=from; i<=to; i++) {
  30. inSet.add(String.valueOf(i));
  31. }
  32. } else {
  33. inSet.add(part);
  34. }
  35. }
  36.  
  37. return inSet;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement