From 9daa3e136025059791e059ef01274cbc6fe3faf3 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sat, 23 Oct 2021 13:54:41 +0100 Subject: - Added Java solution to "Middle 3-digits" task of week 135. --- .../mohammad-anwar/java/MiddleThreeDigits.java | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 challenge-135/mohammad-anwar/java/MiddleThreeDigits.java (limited to 'challenge-135/mohammad-anwar/java/MiddleThreeDigits.java') diff --git a/challenge-135/mohammad-anwar/java/MiddleThreeDigits.java b/challenge-135/mohammad-anwar/java/MiddleThreeDigits.java new file mode 100644 index 0000000000..74eec8fc78 --- /dev/null +++ b/challenge-135/mohammad-anwar/java/MiddleThreeDigits.java @@ -0,0 +1,52 @@ +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/* + +Week 135: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-135 + +Task #1: Middle 3-digits + + You are given an integer. + + Write a script find out the middle 3-digits of the given integer, if possible otherwise throw sensible error. + +*/ + +class MiddleThreeDigits { + + public static void main(String[] args) { + String p = System.getProperty("number", "1234567"); + + Pattern pattern = Pattern.compile("\\-?\\d+"); + if (pattern.matcher(p).find()) { + + int n = Math.abs(Integer.parseInt(p)); + int l = countDigits(n); + if (l == 1) { + System.out.println("ERROR: Too short."); + } + else if (l % 2 == 0) { + System.out.println("ERROR: Even number of digists."); + } + else { + int i = (l / 2) - 1; + System.out.println(String.valueOf(n).substring(i, i+3)); + } + + } + else { + System.out.println("ERROR: Invalid number."); + } + } + + public static int countDigits(int n) { + int l = 0; + for(; n != 0; n /= 10, ++l); + return l; + } + +} -- cgit