diff options
| author | Abigail <abigail@abigail.be> | 2021-10-21 15:18:52 +0200 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-10-21 15:18:52 +0200 |
| commit | a761e5f5c11dee3dc7f95a9bd1b3b47b1b60a23a (patch) | |
| tree | 6c176744062bcc4a1754249b33fa43d5bdfd0929 | |
| parent | a69ebee867247a05f53192ea01af5f08f2259b15 (diff) | |
| download | perlweeklychallenge-club-a761e5f5c11dee3dc7f95a9bd1b3b47b1b60a23a.tar.gz perlweeklychallenge-club-a761e5f5c11dee3dc7f95a9bd1b3b47b1b60a23a.tar.bz2 perlweeklychallenge-club-a761e5f5c11dee3dc7f95a9bd1b3b47b1b60a23a.zip | |
Java solutions for week 135
| -rw-r--r-- | challenge-135/abigail/README.md | 2 | ||||
| -rw-r--r-- | challenge-135/abigail/java/ch-1.java | 44 | ||||
| -rw-r--r-- | challenge-135/abigail/java/ch-2.java | 45 |
3 files changed, 91 insertions, 0 deletions
diff --git a/challenge-135/abigail/README.md b/challenge-135/abigail/README.md index 14b229d5a9..e10d8fbeda 100644 --- a/challenge-135/abigail/README.md +++ b/challenge-135/abigail/README.md @@ -6,6 +6,7 @@ * [Bash](bash/ch-1.sh) * [C](c/ch-1.c) * [Go](go/ch-1.go) +* [Java](java/ch-1.java) * [Lua](lua/ch-1.lua) * [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) @@ -19,6 +20,7 @@ * [Bash](bash/ch-2.sh) * [C](c/ch-2.c) * [Go](go/ch-2.go) +* [Java](java/ch-2.java) * [Lua](lua/ch-2.lua) * [Node.js](node/ch-2.js) * [Perl](perl/ch-2.pl) diff --git a/challenge-135/abigail/java/ch-1.java b/challenge-135/abigail/java/ch-1.java new file mode 100644 index 0000000000..c22cbf3132 --- /dev/null +++ b/challenge-135/abigail/java/ch-1.java @@ -0,0 +1,44 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-1.java ch1.java; javac ch1.java; java ch1 < input-file +// + +import java.util.*; +import java.util.regex.Pattern; + +public class ch1 { + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + try { + while (true) { + String line = scanner . nextLine (); + if (!Pattern . matches ("^[-+]?[0-9]+$", line)) { + System . out . println ("not an integer"); + continue; + } + if (Pattern . matches ("^[-+].*", line)) { + line = line . substring (1); + } + int ll = line . length (); + if (ll % 2 == 0) { + System . out . println ("even number of digits"); + continue; + } + if (ll < 3) { + System . out . println ("too short"); + continue; + } + System . out . println (line . substring ((ll - 3) / 2, + (ll + 3) / 2)); + } + } + catch (Exception e) { + // + // EOF + // + } + } +} diff --git a/challenge-135/abigail/java/ch-2.java b/challenge-135/abigail/java/ch-2.java new file mode 100644 index 0000000000..477e59f8d3 --- /dev/null +++ b/challenge-135/abigail/java/ch-2.java @@ -0,0 +1,45 @@ +// +// See ../README.md +// + +// +// Run as: ln ch-2.java ch2.java; javac ch2.java; java ch2 < input-file +// + +import java.util.*; +import java.util.regex.Pattern; + +public class ch2 { + public static void main (String [] args) { + Scanner scanner = new Scanner (System . in); + String valid = "[0-9BCDFGHJKLMNPQRSTVWXYZ]"; + String pattern = "^" + valid + valid + valid + + valid + valid + valid + "[0-9]" + "$"; + int [] w = {1, 3, 1, 7, 3, 9, 1}; + try { + while (true) { + String sedol = scanner . nextLine (); + // + // Check for the correct syntax + // + if (!Pattern . matches (pattern, sedol)) { + System . out . println (0); + continue; + } + char [] chars = sedol . toCharArray (); + int check = 0; + for (int i = 0; i < 7; i ++) { + int val = (int) chars [i]; + val -= val <= (int) '9' ? (int) '0' : (int) 'A'; + check += w [i] * val; + } + System . out . println (check % 10 == 0 ? 1 : 0); + } + } + catch (Exception e) { + // + // EOF + // + } + } +} |
