aboutsummaryrefslogtreecommitdiff
path: root/challenge-278/deadmarshal/java/Ch1.java
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-07-20 12:33:42 +0100
committerGitHub <noreply@github.com>2024-07-20 12:33:42 +0100
commitd81b97819b40fef1af80b0d9585c9fc6b7147b5f (patch)
tree60a1ba6f99ddc149a30d73ebc7757daf5822b85f /challenge-278/deadmarshal/java/Ch1.java
parent65c93aa7401141c479d8ea993c3efba9b69ef9be (diff)
parent83c26b915df95865c54062ab5c1a04a916ac217a (diff)
downloadperlweeklychallenge-club-d81b97819b40fef1af80b0d9585c9fc6b7147b5f.tar.gz
perlweeklychallenge-club-d81b97819b40fef1af80b0d9585c9fc6b7147b5f.tar.bz2
perlweeklychallenge-club-d81b97819b40fef1af80b0d9585c9fc6b7147b5f.zip
Merge pull request #10459 from deadmarshal/TWC278
TWC278
Diffstat (limited to 'challenge-278/deadmarshal/java/Ch1.java')
-rw-r--r--challenge-278/deadmarshal/java/Ch1.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-278/deadmarshal/java/Ch1.java b/challenge-278/deadmarshal/java/Ch1.java
new file mode 100644
index 0000000000..9715d94bc7
--- /dev/null
+++ b/challenge-278/deadmarshal/java/Ch1.java
@@ -0,0 +1,36 @@
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+public class Ch1 {
+ public static void main(String[] args) {
+ try {
+ System.out.println(sort_string("and2 Raku3 cousins5 Perl1 are4"));
+ System.out.println(sort_string("guest6 Python1 most4 the3 popular5 is2 " +
+ "language7"));
+ System.out.println(sort_string("Challenge3 The1 Weekly2"));
+ } catch (Exception e) {
+ System.err.println(e.getMessage());
+ }
+ }
+
+ private static String sort_string(String str) throws Exception {
+ Pattern pattern = Pattern.compile("(\\w+)(\\d+)");
+ Map<String, Integer> m = new HashMap<>();
+ for (String s : str.split(" ")) {
+ Matcher matcher = pattern.matcher(s);
+ if (matcher.find())
+ m.put(matcher.group(1), Integer.parseInt(matcher.group(2)));
+ else
+ throw new Exception("Wrong format!");
+ }
+ return m.entrySet()
+ .stream()
+ .sorted(Map.Entry.comparingByValue())
+ .map(Map.Entry::getKey)
+ .collect(Collectors.joining(" "));
+ }
+}
+