From 938665aaeb7a7c84af9123254fed46077b1b69f8 Mon Sep 17 00:00:00 2001 From: CY Fung Date: Sat, 15 Oct 2022 22:07:19 +0800 Subject: Week 186 codes --- .../cheok-yin-fung/java/UnicodeMakeover.java | 30 ++++++++++++++++++++++ challenge-186/cheok-yin-fung/perl/ch-1.pl | 2 ++ challenge-186/cheok-yin-fung/perl/ch-2.pl | 6 ++++- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 challenge-186/cheok-yin-fung/java/UnicodeMakeover.java diff --git a/challenge-186/cheok-yin-fung/java/UnicodeMakeover.java b/challenge-186/cheok-yin-fung/java/UnicodeMakeover.java new file mode 100644 index 0000000000..43c211c06e --- /dev/null +++ b/challenge-186/cheok-yin-fung/java/UnicodeMakeover.java @@ -0,0 +1,30 @@ +// The Weekly Challenge 186 +// Task 2 Unicode Makeover +// Java Solution + +import java.text.Normalizer; +// Please also take a look at: java.lang.Character; + +public class UnicodeMakeover +{ + public static void main(String[] args) { + System.out.println(makeover("ÃÊÍÒÙ")); + System.out.println(makeover("âÊíÒÙ")); + System.out.println(makeover("chữ Quốc ngữ")); + System.out.println(makeover("Paul Erdős")); + System.out.println(makeover("香港")); // no output + } + + public static String makeover(String text) + { + StringBuilder aaa = new + StringBuilder(Normalizer.normalize(text, Normalizer.Form.NFKD)); + String bbb = ""; + for (int i = 0; i < aaa.length(); i++) + { + if (aaa.codePointAt(i) <= 127) + bbb += aaa.charAt(i); + } + return bbb; + } +} diff --git a/challenge-186/cheok-yin-fung/perl/ch-1.pl b/challenge-186/cheok-yin-fung/perl/ch-1.pl index 27d1b4c16f..8df61c88dc 100644 --- a/challenge-186/cheok-yin-fung/perl/ch-1.pl +++ b/challenge-186/cheok-yin-fung/perl/ch-1.pl @@ -1,3 +1,5 @@ +# The Weekly Challenge 186 +# Task 1 Zip List use v5.30.0; use warnings; diff --git a/challenge-186/cheok-yin-fung/perl/ch-2.pl b/challenge-186/cheok-yin-fung/perl/ch-2.pl index 34bf7b847c..595c32c482 100644 --- a/challenge-186/cheok-yin-fung/perl/ch-2.pl +++ b/challenge-186/cheok-yin-fung/perl/ch-2.pl @@ -1,3 +1,5 @@ +# The Weekly Challenge 186 +# Task 2 Unicode Makeover use v5.30.0; use charnames (); use utf8; @@ -13,8 +15,10 @@ sub makeover { return join "", map {ch_latin $_} split "", $_[0] } -use Test::More tests=>4; +use Test::More tests=>5; ok makeover("ÃÊÍÒÙ") eq "AEIOU"; ok makeover("âÊíÒÙ") eq "aEiOU"; ok makeover("chữ Quốc ngữ") eq "chu Quoc ngu"; ok makeover("Paul Erdős") eq "Paul Erdos"; +ok makeover("香港") eq "香港"; + -- cgit