summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils/StringUtils.java
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2023-06-23 19:48:38 -0400
committerBen Culkin <scorpress@gmail.com>2023-06-23 19:48:38 -0400
commit2df02c35b70f7e8077832470de9594b657f1be67 (patch)
tree4353ce1f78571e038bbe8fed62d321c77a7b868c /base/src/main/java/bjc/utils/funcutils/StringUtils.java
parent4a96d9cad446ea405b51dfeebb01a1b6d7f6fb2b (diff)
Add terminal
This is some functionality based on the way that MVS/other IBM OSes handle their UI
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils/StringUtils.java')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/StringUtils.java28
1 files changed, 28 insertions, 0 deletions
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