Middle three digits: Difference between revisions
Content deleted Content added
→{{header|J}}: simplify |
→{{header|Java}}: added Java |
||
Line 322: | Line 322: | ||
err |
err |
||
err</lang> |
err</lang> |
||
=={{header|Java}}== |
|||
<lang d>public class MiddleThreeDigits { |
|||
public static void main(String[] args) { |
|||
final long[] passing = {123, 12345, 1234567, 987654321, 10001, -10001, |
|||
-123, -100, 100, -12345, Long.MIN_VALUE, Long.MAX_VALUE}; |
|||
final int[] failing = {1, 2, -1, -10, 2002, -2002, 0, Integer.MIN_VALUE, |
|||
Integer.MAX_VALUE}; |
|||
for (long n : passing) |
|||
System.out.printf("middleThreeDigits(%s): %s\n", n, middleThreeDigits(n)); |
|||
for (int n : failing) |
|||
System.out.printf("middleThreeDigits(%s): %s\n", n, middleThreeDigits(n)); |
|||
} |
|||
public static <T> String middleThreeDigits(T n) { |
|||
String s = String.valueOf(n); |
|||
if (s.charAt(0) == '-') |
|||
s = s.substring(1); |
|||
int len = s.length(); |
|||
if (len < 3 || len % 2 == 0) |
|||
return "Need odd and >= 3 digits"; |
|||
int mid = len / 2; |
|||
return s.substring(mid - 1, mid + 2); |
|||
} |
|||
}</lang> |
|||
<pre>middleThreeDigits(123): 123 |
|||
middleThreeDigits(12345): 234 |
|||
middleThreeDigits(1234567): 345 |
|||
middleThreeDigits(987654321): 654 |
|||
middleThreeDigits(10001): 000 |
|||
middleThreeDigits(-10001): 000 |
|||
middleThreeDigits(-123): 123 |
|||
middleThreeDigits(-100): 100 |
|||
middleThreeDigits(100): 100 |
|||
middleThreeDigits(-12345): 234 |
|||
middleThreeDigits(-9223372036854775808): 368 |
|||
middleThreeDigits(9223372036854775807): 368 |
|||
middleThreeDigits(1): Need odd and >= 3 digits |
|||
middleThreeDigits(2): Need odd and >= 3 digits |
|||
middleThreeDigits(-1): Need odd and >= 3 digits |
|||
middleThreeDigits(-10): Need odd and >= 3 digits |
|||
middleThreeDigits(2002): Need odd and >= 3 digits |
|||
middleThreeDigits(-2002): Need odd and >= 3 digits |
|||
middleThreeDigits(0): Need odd and >= 3 digits |
|||
middleThreeDigits(-2147483648): Need odd and >= 3 digits |
|||
middleThreeDigits(2147483647): Need odd and >= 3 digits</pre> |
|||
=={{header|OCaml}}== |
=={{header|OCaml}}== |