fork download
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. interface Option {
  5. boolean check(String wordA, String wordB);
  6. }
  7.  
  8. class WordsComparator {
  9. private List<Option> options = new ArrayList<Option>();
  10.  
  11. public void addOption(Option option) {
  12. options.add(option);
  13. }
  14.  
  15. public void removeOption(Option option) {
  16. options.remove(option);
  17. }
  18.  
  19. public boolean compare(String wordA, String wordB) {
  20. boolean result = wordA.equals(wordB);
  21. for(Option v : options)
  22. result = (result || v.check(wordA, wordB));
  23. return result;
  24. }
  25. }
  26.  
  27. class IgnoreSpaces implements Option {
  28. @Override
  29. public boolean check(String wordA, String wordB) {
  30. return wordA.replaceAll("\\s+","").equals(wordB.replaceAll("\\s+", ""));
  31. }
  32. }
  33.  
  34. class IgnoreCase implements Option {
  35. @Override
  36. public boolean check(String wordA, String wordB) {
  37. return wordA.equalsIgnoreCase(wordB);
  38. }
  39. }
  40.  
  41. class IgnoreBlank implements Option {
  42. @Override
  43. public boolean check(String wordA, String wordB) {
  44. return wordB.isEmpty();
  45. }
  46. }
  47.  
  48. public class Main {
  49. public static void main(String[] args) {
  50. //walidatory
  51. IgnoreBlank ignoreBlank = new IgnoreBlank();
  52. IgnoreCase ignoreCase = new IgnoreCase();
  53. IgnoreSpaces ignoreSpaces = new IgnoreSpaces();
  54.  
  55. WordsComparator wordsComparator = new WordsComparator();
  56.  
  57. //B puste jako dobre
  58. wordsComparator.addOption(ignoreBlank);
  59. System.out.println(wordsComparator.compare("s l o w o",""));
  60. System.out.println(wordsComparator.compare("s l o w o","slowo"));
  61. System.out.println(wordsComparator.compare("s l o w o","sLOWO"));
  62.  
  63. //niesprawdzanie spacji, niespradzanie Case, B puste jako zle
  64. wordsComparator.removeOption(ignoreBlank);
  65. wordsComparator.addOption(ignoreSpaces);
  66. wordsComparator.addOption(ignoreCase);
  67. System.out.println(wordsComparator.compare("s l o w o",""));
  68. System.out.println(wordsComparator.compare("s l o w o","slowo"));
  69. System.out.println(wordsComparator.compare("s l o w o","SlOwO"));
  70.  
  71. //standardowo rygorystycznie
  72. wordsComparator.removeOption(ignoreSpaces);
  73. wordsComparator.removeOption(ignoreCase);
  74. System.out.println(wordsComparator.compare("s l o w o",""));
  75. System.out.println(wordsComparator.compare("s l o w o","slowo"));
  76. System.out.println(wordsComparator.compare("s l o w o","sLOWO"));
  77. }
  78. }
Success #stdin #stdout 0.08s 380160KB
stdin
Standard input is empty
stdout
true
false
false
false
true
false
false
false
false