From 2df02c35b70f7e8077832470de9594b657f1be67 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Fri, 23 Jun 2023 19:48:38 -0400 Subject: Add terminal This is some functionality based on the way that MVS/other IBM OSes handle their UI --- .../main/java/bjc/utils/funcutils/StringUtils.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'base/src/main/java/bjc/utils/funcutils/StringUtils.java') diff --git a/base/src/main/java/bjc/utils/funcutils/StringUtils.java b/base/src/main/java/bjc/utils/funcutils/StringUtils.java index 0b57e18..2d86083 100644 --- a/base/src/main/java/bjc/utils/funcutils/StringUtils.java +++ b/base/src/main/java/bjc/utils/funcutils/StringUtils.java @@ -312,4 +312,32 @@ public class StringUtils { String... splits) { return LevelSplitter.def.levelSplit(phrase, keepDelims, splits); } + + /** + * Convert a string into a pseudorandom anagram. + * + * Works by swapping each character in the string with a random one. + * + * @param s The string to convert. + * + * @return A pseudo-random anagram + */ + public static String strfry(String s) { + char[] chars = s.toCharArray(); + + int strlen = chars.length; + Random rng = new Random(); + + for (int i = 0; i < strlen; i++) { + int randIdx = rng.nextInt(strlen); + + char source = chars[i]; + char dest = chars[randIdx]; + + chars[i] = dest; + chars[randIdx] = source; + } + + return String.valueOf(chars); + } } \ No newline at end of file -- cgit v1.2.3