lots of exercises in java... from https://github.com/exercism/java

Hamming.java 973B

123456789101112131415161718192021222324252627282930
  1. public class Hamming {
  2. private final int hammingDistance;
  3. public Hamming(String leftStrand, String rightStrand) {
  4. hammingDistance = computeHammingDistance(leftStrand, rightStrand);
  5. }
  6. public int getHammingDistance() {
  7. return hammingDistance;
  8. }
  9. private int computeHammingDistance(String leftStrand, String rightStrand) {
  10. if(leftStrand.length() != rightStrand.length()) {
  11. throw new IllegalArgumentException("leftStrand and rightStrand must be of equal length.");
  12. }
  13. final int length = Math.min(leftStrand.length(), rightStrand.length());
  14. int distance = 0;
  15. for (int i = 0; i < length; i++) {
  16. distance += hammingContributionAt(i, leftStrand, rightStrand);
  17. }
  18. return distance;
  19. }
  20. private int hammingContributionAt(int index, String leftStrand, String rightStrand) {
  21. return leftStrand.charAt(index) != rightStrand.charAt(index) ? 1 : 0;
  22. }
  23. }