Guest User

Untitled

a guest
Oct 21st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. import java.util.List;
  2.  
  3. public class Namer {
  4. private String firstName;
  5. private String lastName;
  6.  
  7. public Namer(String firstName, String lastName) {
  8. this.firstName = firstName;
  9. this.lastName = lastName;
  10. }
  11.  
  12. public String getFirstName() {
  13. return firstName;
  14. }
  15.  
  16. public String getLastName() {
  17. return lastName;
  18. }
  19. }
  20.  
  21. public class NameParserSimple {
  22. public static Namer parseName(String name) {
  23. int commaIdx = name.indexOf(',');
  24. if (commaIdx != -1) {
  25. return new Namer(name.substring(commaIdx + 1).trim(), name.substring(0, commaIdx).trim());
  26. }
  27.  
  28. int spaceIdx = name.indexOf(' ');
  29. if (spaceIdx != -1) {
  30. return new Namer(name.substring(0, spaceIdx).trim(), name.substring(spaceIdx + 1).trim());
  31. }
  32.  
  33. return new Namer("", name);
  34. }
  35. }
  36.  
  37. public class NameParserRegex {
  38. static List<String> nameFormats = { "\{0}, \{1}", "\{1} \{0}" };
  39.  
  40. public static Namer parseName(String name) {
  41. for (format : nameFormats) {
  42. Namer namer = parseName(name, format);
  43. if (namer != null)
  44. return namer;
  45. }
  46. return new Namer("", name);
  47. }
  48.  
  49. public static Namer parseName(String name, Regex nameFormat) {
  50. Match match = nameFormat.match(name);
  51. if (!match)
  52. return null;
  53.  
  54. return new Namer(match.group(0), match.group(1));
  55. }
  56. }
  57.  
  58. public class NameParserConfigurable {
  59. private List<String> nameFormats;
  60.  
  61. public NameParser(List<String> nameFormats) {
  62. this.nameFormats = nameFormats;
  63. }
  64.  
  65. public Namer parseName(String name) {
  66. for (format : nameFormats) {
  67. Namer namer = parseName(name, format);
  68. if (namer != null)
  69. return namer;
  70. }
  71. return new Namer("", name);
  72. }
  73.  
  74. public static Namer parseName(String name, Regex nameFormat) {
  75. Match match = nameFormat.match(name);
  76. if (!match)
  77. return null;
  78.  
  79. return new Namer(match.group(0), match.group(1));
  80. }
  81. }
Add Comment
Please, Sign In to add comment