import java.util.ArrayList;
import java.util.List;
}
class WordsComparator {
private List<Option> options = new ArrayList<Option>();
public void addOption
(Option option
) { options.add(option);
}
public void removeOption
(Option option
) { options.remove(option);
}
boolean result = wordA.equals(wordB);
result = (result || v.check(wordA, wordB));
return result;
}
}
class IgnoreSpaces
implements Option { @Override
return wordA.replaceAll("\\s+","").equals(wordB.replaceAll("\\s+", ""));
}
}
class IgnoreCase
implements Option { @Override
return wordA.equalsIgnoreCase(wordB);
}
}
class IgnoreBlank
implements Option { @Override
return wordB.isEmpty();
}
}
public class Main {
public static void main
(String[] args
) { //walidatory
IgnoreBlank ignoreBlank = new IgnoreBlank();
IgnoreCase ignoreCase = new IgnoreCase();
IgnoreSpaces ignoreSpaces = new IgnoreSpaces();
WordsComparator wordsComparator = new WordsComparator();
//B puste jako dobre
wordsComparator.addOption(ignoreBlank);
System.
out.
println(wordsComparator.
compare("s l o w o",
"")); System.
out.
println(wordsComparator.
compare("s l o w o",
"slowo")); System.
out.
println(wordsComparator.
compare("s l o w o",
"sLOWO"));
//niesprawdzanie spacji, niespradzanie Case, B puste jako zle
wordsComparator.removeOption(ignoreBlank);
wordsComparator.addOption(ignoreSpaces);
wordsComparator.addOption(ignoreCase);
System.
out.
println(wordsComparator.
compare("s l o w o",
"")); System.
out.
println(wordsComparator.
compare("s l o w o",
"slowo")); System.
out.
println(wordsComparator.
compare("s l o w o",
"SlOwO"));
//standardowo rygorystycznie
wordsComparator.removeOption(ignoreSpaces);
wordsComparator.removeOption(ignoreCase);
System.
out.
println(wordsComparator.
compare("s l o w o",
"")); System.
out.
println(wordsComparator.
compare("s l o w o",
"slowo")); System.
out.
println(wordsComparator.
compare("s l o w o",
"sLOWO")); }
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKCmludGVyZmFjZSBPcHRpb24gewoJYm9vbGVhbiBjaGVjayhTdHJpbmcgd29yZEEsIFN0cmluZyB3b3JkQik7Cn0KCmNsYXNzIFdvcmRzQ29tcGFyYXRvciB7Cglwcml2YXRlIExpc3Q8T3B0aW9uPiBvcHRpb25zID0gbmV3IEFycmF5TGlzdDxPcHRpb24+KCk7CgoJcHVibGljIHZvaWQgYWRkT3B0aW9uKE9wdGlvbiBvcHRpb24pIHsKCQlvcHRpb25zLmFkZChvcHRpb24pOwoJfQoKCXB1YmxpYyB2b2lkIHJlbW92ZU9wdGlvbihPcHRpb24gb3B0aW9uKSB7CgkJb3B0aW9ucy5yZW1vdmUob3B0aW9uKTsKCX0KCglwdWJsaWMgYm9vbGVhbiBjb21wYXJlKFN0cmluZyB3b3JkQSwgU3RyaW5nIHdvcmRCKSB7CgkJYm9vbGVhbiByZXN1bHQgPSB3b3JkQS5lcXVhbHMod29yZEIpOwoJCWZvcihPcHRpb24gdiA6IG9wdGlvbnMpCgkJCXJlc3VsdCA9IChyZXN1bHQgfHwgdi5jaGVjayh3b3JkQSwgd29yZEIpKTsKCQlyZXR1cm4gcmVzdWx0OwoJfQp9CgpjbGFzcyBJZ25vcmVTcGFjZXMgaW1wbGVtZW50cyBPcHRpb24gewoJQE92ZXJyaWRlCglwdWJsaWMgYm9vbGVhbiBjaGVjayhTdHJpbmcgd29yZEEsIFN0cmluZyB3b3JkQikgewoJCXJldHVybiB3b3JkQS5yZXBsYWNlQWxsKCJcXHMrIiwiIikuZXF1YWxzKHdvcmRCLnJlcGxhY2VBbGwoIlxccysiLCAiIikpOwoJfQp9CgpjbGFzcyBJZ25vcmVDYXNlIGltcGxlbWVudHMgT3B0aW9uIHsKCUBPdmVycmlkZQoJcHVibGljIGJvb2xlYW4gY2hlY2soU3RyaW5nIHdvcmRBLCBTdHJpbmcgd29yZEIpIHsKCQlyZXR1cm4gd29yZEEuZXF1YWxzSWdub3JlQ2FzZSh3b3JkQik7Cgl9Cn0KCmNsYXNzIElnbm9yZUJsYW5rIGltcGxlbWVudHMgT3B0aW9uIHsKCUBPdmVycmlkZQoJcHVibGljIGJvb2xlYW4gY2hlY2soU3RyaW5nIHdvcmRBLCBTdHJpbmcgd29yZEIpIHsKCQlyZXR1cm4gd29yZEIuaXNFbXB0eSgpOwoJfQp9CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJLy93YWxpZGF0b3J5CgkJSWdub3JlQmxhbmsgaWdub3JlQmxhbmsgPSBuZXcgSWdub3JlQmxhbmsoKTsKCQlJZ25vcmVDYXNlIGlnbm9yZUNhc2UgPSBuZXcgSWdub3JlQ2FzZSgpOwoJCUlnbm9yZVNwYWNlcyBpZ25vcmVTcGFjZXMgPSBuZXcgSWdub3JlU3BhY2VzKCk7CgoJCVdvcmRzQ29tcGFyYXRvciB3b3Jkc0NvbXBhcmF0b3IgPSBuZXcgV29yZHNDb21wYXJhdG9yKCk7CgoJCS8vQiBwdXN0ZSBqYWtvIGRvYnJlCgkJd29yZHNDb21wYXJhdG9yLmFkZE9wdGlvbihpZ25vcmVCbGFuayk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCIiKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCJzbG93byIpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4od29yZHNDb21wYXJhdG9yLmNvbXBhcmUoInMgbCBvIHcgbyIsInNMT1dPIikpOwoKCQkvL25pZXNwcmF3ZHphbmllIHNwYWNqaSwgbmllc3ByYWR6YW5pZSBDYXNlLCBCIHB1c3RlIGpha28gemxlCgkJd29yZHNDb21wYXJhdG9yLnJlbW92ZU9wdGlvbihpZ25vcmVCbGFuayk7CgkJd29yZHNDb21wYXJhdG9yLmFkZE9wdGlvbihpZ25vcmVTcGFjZXMpOwoJCXdvcmRzQ29tcGFyYXRvci5hZGRPcHRpb24oaWdub3JlQ2FzZSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCIiKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCJzbG93byIpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4od29yZHNDb21wYXJhdG9yLmNvbXBhcmUoInMgbCBvIHcgbyIsIlNsT3dPIikpOwoKCQkvL3N0YW5kYXJkb3dvIHJ5Z29yeXN0eWN6bmllCgkJd29yZHNDb21wYXJhdG9yLnJlbW92ZU9wdGlvbihpZ25vcmVTcGFjZXMpOwoJCXdvcmRzQ29tcGFyYXRvci5yZW1vdmVPcHRpb24oaWdub3JlQ2FzZSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCIiKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKHdvcmRzQ29tcGFyYXRvci5jb21wYXJlKCJzIGwgbyB3IG8iLCJzbG93byIpKTsKCQlTeXN0ZW0ub3V0LnByaW50bG4od29yZHNDb21wYXJhdG9yLmNvbXBhcmUoInMgbCBvIHcgbyIsInNMT1dPIikpOwoJfQp9