aboutsummaryrefslogtreecommitdiff
path: root/challenge-278/deadmarshal/java/Ch1.java
diff options
context:
space:
mode:
authordeadmarshal <adeadmarshal@gmail.com>2024-07-20 08:51:23 +0330
committerdeadmarshal <adeadmarshal@gmail.com>2024-07-20 08:51:23 +0330
commit83c26b915df95865c54062ab5c1a04a916ac217a (patch)
tree01babe5709ac5289c13853e20cc52a487e0e1347 /challenge-278/deadmarshal/java/Ch1.java
parent1e7c50d9232dcc1ca985e29ba4860aaf13725056 (diff)
downloadperlweeklychallenge-club-83c26b915df95865c54062ab5c1a04a916ac217a.tar.gz
perlweeklychallenge-club-83c26b915df95865c54062ab5c1a04a916ac217a.tar.bz2
perlweeklychallenge-club-83c26b915df95865c54062ab5c1a04a916ac217a.zip
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(" "));
+ }
+}
+