diff --git a/README.md b/README.md index a4b6575..10f6fc7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # PPJ -This branch contains the solution for the **nth task**. +This branch contains the solution for the **8th task**. [Go back to main](/femsci/ppj/src/branch/nya) diff --git a/dev/meowmeow/CuteLemmas.java b/dev/meowmeow/CuteLemmas.java new file mode 100644 index 0000000..bd57919 --- /dev/null +++ b/dev/meowmeow/CuteLemmas.java @@ -0,0 +1,32 @@ +/* + * TASK 8 + * archived at https://git.femboy.science/femsci/ppj/src/branch/task/8 + * by femsci + * + * written during a mental breakdown, vibing to The Cure - Disintegration + */ + +package dev.meowmeow; + +import static dev.meowmeow.NamingUtils.*; + +// :3 +public class CuteLemmas { + public static void main(String[] args) { + + // brace yourselves for a sysout frenzy + + System.out.println(norm("caravaggio")); + System.out.println(norm("VERMEER")); + System.out.println(init("johann sebastian bach")); + System.out.println(init("i. babeL")); + System.out.println(init("jorge LUIS BORGES")); + System.out.println(init("WOLFGANG a. mozart")); + System.out.println(tr("Mississippi", + "abcdefghijklmnopqrstuvwyz", + "BCDEFGHIJKLMNOPQRSTUVWYZA")); + System.out.println(tr("abcXYZ", "aZcX", "||Cx")); + + System.out.println(norm(tr("haiii ", "h ", "pn"))); + } +} diff --git a/dev/meowmeow/NamingUtils.java b/dev/meowmeow/NamingUtils.java new file mode 100644 index 0000000..0e7b56b --- /dev/null +++ b/dev/meowmeow/NamingUtils.java @@ -0,0 +1,78 @@ +/* + * TASK 8 + * archived at https://git.femboy.science/femsci/ppj/src/branch/task/8 + * by femsci + */ + +package dev.meowmeow; + +//cute atomic purely functional meows~ + +public class NamingUtils { + // normeow + public static String norm(String name) { + if (name.length() == 0) { + return ""; + } + + return String.format("%c%s", Character.toUpperCase(name.charAt(0)), name.substring(1).toLowerCase()); + } + + // init 6 + public static String init(String name) { + String[] sgmt = name.split(" "); + + if (sgmt.length == 0) { + throw new IllegalArgumentException("invalid data"); + } + + int len = sgmt.length; + + StringBuffer buf = new StringBuffer(); + + // alnamic names :3 + for (int c = 0; c < len - 1; ++c) { + String silliname = sgmt[c]; + if (silliname.endsWith(".")) { + if (silliname.length() != 2) { + throw new IllegalArgumentException("only initials may end with a '.'"); + } + + buf.append(silliname.toUpperCase()).append(' '); + continue; + } + + buf.append(String.format("%c.", Character.toUpperCase(silliname.charAt(0)))).append(' '); + } + + // lname + buf.append(norm(sgmt[len - 1])); + + return buf.toString(); + } + + // trills + public static String tr(String s, String assMapFrom, String assMapTo) { + // hehe >:3c + // Runtime.getRuntime().exec(new String[] { + // "/usr/bin/bash", + // String.format("-c \"echo '%s' | tr '%s' '%s'\"", s, from, to) + // }); + + if (assMapFrom.length() != assMapTo.length()) { + throw new IllegalArgumentException("mapping sets must have same len"); + } + + StringBuffer buf = new StringBuffer(s.length()); + + for (int rcx = 0; rcx < s.length(); ++rcx) { + char meow = s.charAt(rcx); + int assIdx = assMapFrom.indexOf(meow); + char meowie = assIdx == -1 ? meow : assMapTo.charAt(assIdx); + + buf.append(meowie); + } + + return buf.toString(); + } +}