diff --git a/archive/k/kotlin/DuplicateCharacterCounter.kt b/archive/k/kotlin/DuplicateCharacterCounter.kt new file mode 100644 index 000000000..edd513494 --- /dev/null +++ b/archive/k/kotlin/DuplicateCharacterCounter.kt @@ -0,0 +1,34 @@ +import kotlin.system.exitProcess + +fun main(args: Array) { + val phrase: String = errorChecking(args) + val counts = duplicateCharacterCount(phrase) + outputMap(counts) +} + +fun usageError() { + println("Usage: please provide a string") +} + +fun errorChecking(args: Array): String { + if (args.size == 0 || args[0] == "") { + usageError() + exitProcess(1) + } + return args[0] +} + +fun duplicateCharacterCount(phrase: String): Map { + val counts: Map = phrase.groupingBy { it }.eachCount() + return counts.filter { it.value > 1 } +} + +fun outputMap(counts: Map) { + if (counts.size > 0) { + for (pair in counts) { + println("${pair.key}: ${pair.value}") + } + } else { + println("No duplicate characters") + } +}