From b6e3486955df26da7fe0ed22d81da455378b6171 Mon Sep 17 00:00:00 2001 From: Andrei Ovcharenko Date: Sat, 1 Aug 2026 04:53:11 +0300 Subject: [PATCH] Handle empty Pig Latin tokens safely --- src/main/java/kyu5/PigLatin.java | 4 +++- src/test/java/kyu5/PigLatinTest.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/kyu5/PigLatin.java b/src/main/java/kyu5/PigLatin.java index 4527a4a..32b5bdd 100644 --- a/src/main/java/kyu5/PigLatin.java +++ b/src/main/java/kyu5/PigLatin.java @@ -21,7 +21,9 @@ public static String pigIt(String str) { String[] words = str.split("\\s"); for (String w : words ) { - if (!w.matches("\\W")) { + if (w.isEmpty()) { + continue; + } else if (!w.matches("\\W")) { stringBuilder.append(w.substring(1)).append(w.charAt(0)).append(AY); } else { stringBuilder.append(w).append(" "); diff --git a/src/test/java/kyu5/PigLatinTest.java b/src/test/java/kyu5/PigLatinTest.java index a6ee6ef..ba173ce 100644 --- a/src/test/java/kyu5/PigLatinTest.java +++ b/src/test/java/kyu5/PigLatinTest.java @@ -21,4 +21,11 @@ public class PigLatinTest { void smokeTestsShouldExecuteApi() { quality.SmokeMethodTestHarness.verify(kyu5.PigLatin.class); } + + @Test + void handlesEmptyTokensWithoutThrowing() { + assertEquals("", pigIt("")); + assertEquals("eadinglay", pigIt(" leading")); + assertEquals("igPay atinlay", pigIt("Pig latin")); + } }