aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-135/abigail/README.md2
-rw-r--r--challenge-135/abigail/java/ch-1.java44
-rw-r--r--challenge-135/abigail/java/ch-2.java45
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
+ //
+ }
+ }
+}