Sha256: 1fc2ee303bb0974c985b9c6875430e1cf3aa35f975f03a08f96b9af79d25df94

Contents?: true

Size: 1.03 KB

Versions: 218

Compression:

Stored size: 1.03 KB

Contents

import java.util.HashMap;
import java.util.Map;

public final class DNA {
  private final String sequence;

  public DNA(String sequence) {
    this.sequence = sequence;
  }

  public int count(char base) {
    if (isCountable(base))
      throw new IllegalArgumentException(base + " is not a nucleotide");

    try {
      return nucleotideCounts().get(base);
    } catch (NullPointerException e) {
      return 0;
    }
  }

  private static boolean isCountable(char base) {
    final String COUNTABLE_NUCLEOTIDES = "ACGT";
    return COUNTABLE_NUCLEOTIDES.indexOf(base) == -1;
  }

  public Map<Character, Integer> nucleotideCounts() {
    Map<Character, Integer> counts = emptyCounts();
    for (char c : sequence.toCharArray()) {
      counts.put(c, counts.get(c) + 1);
    }
    return counts;
  }

  private static Map<Character, Integer> emptyCounts() {
    Map<Character, Integer> counts = new HashMap<Character, Integer>();
    counts.put('A', 0);
    counts.put('C', 0);
    counts.put('T', 0);
    counts.put('G', 0);
    return counts;
  }
}

Version data entries

218 entries across 218 versions & 1 rubygems

Version Path
trackler-2.1.0.22 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.21 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.20 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.19 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.18 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.17 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.16 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.15 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.14 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.13 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.12 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.11 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.10 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.9 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.8 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.7 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.6 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.5 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.4 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java
trackler-2.1.0.3 tracks/java/exercises/nucleotide-count/src/example/java/DNA.java