Last active
June 6, 2022 16:02
-
-
Save EasyG0ing1/a3230b31c1490b629d5b840f9d4f9c81 to your computer and use it in GitHub Desktop.
Custom StringBuilder Class
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.LinkedList; | |
public class CStringBuilder { | |
private final StringBuilder masterBuilder = new StringBuilder(); | |
public CStringBuilder() { | |
} | |
public CStringBuilder(char[] str) { | |
this(); | |
addString(str); | |
} | |
public CStringBuilder(String str) { | |
this(); | |
addString(str); | |
}, | |
/* | |
* | |
* Special methods for unique characters | |
* | |
*/ | |
public CStringBuilder cr(int carriageReturnCount) { | |
addString("\n", carriageReturnCount); | |
return this; | |
} | |
public CStringBuilder cr() { | |
addString("\n"); | |
return this; | |
} | |
public CStringBuilder qt(int quoteCount) { | |
addString("\"", quoteCount); | |
return this; | |
} | |
public CStringBuilder qt() { | |
addString("\""); | |
return this; | |
} | |
public CStringBuilder qm(int questionMarkCount) { | |
addString("?",questionMarkCount); | |
return this; | |
} | |
public CStringBuilder qm() { | |
addString("?"); | |
return this; | |
} | |
public CStringBuilder c(int colonCount) { | |
addString(":",colonCount); | |
return this; | |
} | |
public CStringBuilder c() { | |
addString(":"); | |
return this; | |
} | |
public CStringBuilder s(int semiColonCount) { | |
addString(";",semiColonCount); | |
return this; | |
} | |
public CStringBuilder s() { | |
addString(";"); | |
return this; | |
} | |
public CStringBuilder p(int periodCount) { | |
addString(".",periodCount); | |
return this; | |
} | |
public CStringBuilder p() { | |
addString("."); | |
return this; | |
} | |
public CStringBuilder t(int tabCount) { | |
addString("\t",tabCount); | |
return this; | |
} | |
public CStringBuilder t() { | |
addString("\t"); | |
return this; | |
} | |
public CStringBuilder sp(int spacesCount) { | |
addString(" ",spacesCount); | |
return this; | |
} | |
public CStringBuilder sp() { | |
addString(" "); | |
return this; | |
} | |
public CStringBuilder d(int dashCount) { | |
addString("-",dashCount); | |
return this; | |
} | |
public CStringBuilder d() { | |
addString("-"); | |
return this; | |
} | |
public CStringBuilder e(int equalCount) { | |
addString("=",equalCount); | |
return this; | |
} | |
public CStringBuilder e() { | |
addString("="); | |
return this; | |
} | |
public CStringBuilder u(int underlineCount) { | |
addString("_",underlineCount); | |
return this; | |
} | |
public CStringBuilder u() { | |
addString("_"); | |
return this; | |
} | |
public CStringBuilder po(int parenthesisOpenCount) { | |
addString("(",parenthesisOpenCount); | |
return this; | |
} | |
public CStringBuilder po() { | |
addString("("); | |
return this; | |
} | |
public CStringBuilder fs(int forwardSlashCount) { | |
addString("/",forwardSlashCount); | |
return this; | |
} | |
public CStringBuilder fs() { | |
addString("/"); | |
return this; | |
} | |
public CStringBuilder amp(int ampersandCount) { | |
addString("&",ampersandCount); | |
return this; | |
} | |
public CStringBuilder amp() { | |
addString("&"); | |
return this; | |
} | |
public CStringBuilder pc(int parenthesisCloseCount) { | |
addString(")",parenthesisCloseCount); | |
return this; | |
} | |
public CStringBuilder pc() { | |
addString(")"); | |
return this; | |
} | |
public CStringBuilder cm(int commaCount) { | |
addString(",",commaCount); | |
return this; | |
} | |
public CStringBuilder cm() { | |
addString(","); | |
return this; | |
} | |
public CStringBuilder comma(int count) { | |
addString(",",count); | |
return this; | |
} | |
public CStringBuilder comma() { | |
addString(","); | |
return this; | |
} | |
public CStringBuilder cbo(int curleyBracketOpenCount) { | |
addString("{",curleyBracketOpenCount); | |
return this; | |
} | |
public CStringBuilder cbo() { | |
addString("{"); | |
return this; | |
} | |
public CStringBuilder cbc(int curleyBracketCloseCount) { | |
addString("}",curleyBracketCloseCount); | |
return this; | |
} | |
public CStringBuilder cbc() { | |
addString("}"); | |
return this; | |
} | |
public CStringBuilder bo(int bracketOpenCount) { | |
addString("[",bracketOpenCount); | |
return this; | |
} | |
public CStringBuilder bo() { | |
addString("["); | |
return this; | |
} | |
public CStringBuilder bc(int bracketCloseCount) { | |
addString("]",bracketCloseCount); | |
return this; | |
} | |
public CStringBuilder bc() { | |
addString("]"); | |
return this; | |
} | |
public CStringBuilder pp(int pipeCount) { | |
addString("|",pipeCount); | |
return this; | |
} | |
public CStringBuilder pp() { | |
addString("|"); | |
return this; | |
} | |
public CStringBuilder pi(int piCount) { | |
addString((char) 960, piCount); | |
return this; | |
} | |
public CStringBuilder pi() { | |
addString((char) 960); | |
return this; | |
} | |
public CStringBuilder al(String line){ | |
addString(line + "\n"); | |
return this; | |
} | |
public CStringBuilder apple(int appleSymbolCount) { | |
addString((char) 63743, appleSymbolCount); | |
return this; | |
} | |
public CStringBuilder apple() { | |
addString((char) 63743); | |
return this; | |
} | |
public CStringBuilder sa(int count) { | |
addString((char) 945, count); | |
return this; | |
} | |
public CStringBuilder sa() { | |
addString((char) 945); | |
return this; | |
} | |
public CStringBuilder sb(int count) { | |
addString((char) 946, count); | |
return this; | |
} | |
public CStringBuilder sb() { | |
addString((char) 946); | |
return this; | |
} | |
public CStringBuilder sl(int count) { | |
addString((char) 955, count); | |
return this; | |
} | |
public CStringBuilder sl() { | |
addString((char) 955); | |
return this; | |
} | |
public CStringBuilder sm(int count) { | |
addString((char) 956, count); | |
return this; | |
} | |
public CStringBuilder sm() { | |
addString((char) 956); | |
return this; | |
} | |
public CStringBuilder so(int count) { | |
addString((char) 937, count); | |
return this; | |
} | |
public CStringBuilder so() { | |
addString((char) 937); | |
return this; | |
} | |
public CStringBuilder ss(int count) { | |
addString((char) 8721); | |
return this; | |
} | |
public CStringBuilder ss() { | |
addString((char) 8721); | |
return this; | |
} | |
public CStringBuilder append(String str) { | |
addString(str); | |
return this; | |
} | |
public CStringBuilder a(String str, int count) { | |
addString(str,count); | |
return this; | |
} | |
public CStringBuilder a(String str) { | |
addString(str); | |
return this; | |
} | |
/* | |
* | |
* User Interaction Methods | |
* | |
*/ | |
public CStringBuilder append(Object item) { | |
addString(item); | |
return this; | |
} | |
public CStringBuilder a(Object item) { | |
addString(item); | |
return this; | |
} | |
public CStringBuilder append(char[] ... strChar) { | |
for (char[] c : strChar) { | |
addString(c); | |
} | |
return this; | |
} | |
public CStringBuilder a(char[] ... strChar) { | |
for (char[] c : strChar) { | |
addString(c); | |
} | |
return this; | |
} | |
public CStringBuilder append(String ... text) { | |
for(String str : text) { | |
addString(str); | |
} | |
return this; | |
} | |
public CStringBuilder a(String ... text) { | |
for(String str : text) { | |
addString(str); | |
} | |
return this; | |
} | |
public CStringBuilder append(char[] chr, int count) { | |
addString(new String(chr),count); | |
return this; | |
} | |
public CStringBuilder a(char[] chr, int count) { | |
addString(new String(chr),count); | |
return this; | |
} | |
public CStringBuilder append(Object ... object) { | |
for(Object obj : object) { | |
addString(obj); | |
} | |
return this; | |
} | |
public CStringBuilder a(Object ... object) { | |
for(Object obj : object) { | |
addString(obj); | |
} | |
return this; | |
} | |
public CStringBuilder append(Object item, int count) { | |
addString(item,count); | |
return this; | |
} | |
public CStringBuilder a(Object item, int count) { | |
addString(item,count); | |
return this; | |
} | |
public CStringBuilder append(char[] str) { | |
addString(str); | |
return this; | |
} | |
public CStringBuilder a(char[] str) { | |
addString(str); | |
return this; | |
} | |
public CStringBuilder append(LinkedList<char[]> list) { | |
for (char[] c : list) { | |
addString(c); | |
} | |
return this; | |
} | |
public CStringBuilder a(LinkedList<char[]> list) { | |
for (char[] c : list) { | |
addString(c); | |
} | |
return this; | |
} | |
/* | |
* | |
* Private Methods | |
* | |
*/ | |
private void addString(String str, int count) { | |
for (int x = 0; x < count; x++) { | |
addStringFinal(str); | |
} | |
} | |
private void addString(Object ch, int count) { | |
String newString = ch.toString(); | |
addString(newString,count); | |
} | |
private void addString(Object ch) { | |
String newString = ch.toString(); | |
addStringFinal(newString); | |
} | |
private void addString(String str) { | |
addStringFinal(str); | |
} | |
private void addStringFinal(String str) { | |
masterBuilder.append(str); | |
} | |
public Integer getLength() { | |
return masterBuilder.toString().length(); | |
} | |
@Override | |
public String toString() { | |
return masterBuilder.toString(); | |
} | |
/* | |
* | |
* Public static methods to get information about what the Class can do | |
* | |
*/ | |
public static void printCommands() { | |
CStringBuilder csb = new CStringBuilder(); | |
csb.a(" qt = \"").t(2).a("cbo = {").cr(); | |
csb.a(" qm = ?").t(2).a("cbc = }").cr(); | |
csb.a(" c = :").t(2).a(" bo = [").cr(); | |
csb.a(" s = ;").t(2).a(" bc = ]").cr(); | |
csb.a(" t = tab").t().a(" pp = |").cr(); | |
csb.a(" sp = space").t().a(" pi = " + (char) 960).cr(); | |
csb.a(" d = -").t(2).a(" apple = " + (char) 63743).cr(); | |
csb.a(" e = =").t(2).a(" sa = " + (char) 945).cr(); | |
csb.a(" u = _").t(2).a(" sb = " + (char) 946).cr(); | |
csb.a(" po = (").t(2).a(" sl = " + (char) 955).cr(); | |
csb.a(" pc = )").t(2).a(" sm = " + (char) 956).cr(); | |
csb.a(" fs = /").t(2).a(" so = " + (char) 937).cr(); | |
csb.a("amp = &").t(2).a(" ss = " + (char) 8721).cr(); | |
csb.a(" cm = ,").cr(); | |
System.out.println(csb.toString()); | |
} | |
public static void getOptions() {printCommands();} | |
public static void printOutOptions() {printCommands();} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import picocli.CommandLine.Command; | |
import picocli.CommandLine.Option; | |
import picocli.CommandLine.Parameters; | |
import java.io.File; | |
import java.math.BigInteger; | |
import java.nio.file.Files; | |
import java.security.MessageDigest; | |
import java.util.concurrent.Callable; | |
@Command(name = "checksum", | |
description = "Prints the checksum (MD5 by default) of a file to STDOUT.", | |
version = "checksum 1.0", | |
synopsisHeading = "Usage: ", | |
parameterListHeading = "%nParameters:%n", | |
optionListHeading = "%nOptions:%n", | |
mixinStandardHelpOptions = true, | |
footer = "%nDeveloper Contact: @|underline [email protected]|@") | |
public class CheckSum implements Callable<Void> { | |
@Option(names = {"-a", "--algorithm"}, | |
description = "MD5, SHA-1, SHA-256, ...") | |
private String algorithm = "MD5"; | |
@Parameters(index = "0", | |
description = "The file whose checksum to calculate.") | |
private File file; | |
@Override | |
public Void call() throws Exception { | |
byte[] fileContents = Files.readAllBytes(file.toPath()); | |
byte[] digest = MessageDigest.getInstance(algorithm).digest(fileContents); | |
System.out.printf("%0" + (digest.length * 2) + "x%n", new BigInteger(1, digest)); | |
return null; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I like StringBuilder, but I don't like the cumbersome use of .append("") so I found this write up on making a custom String Builder Class and I created this one...
I made this for myself but I found it to be so handy, I thought maybe someone else could benefit from it...
Handy Features: all of these can be repeated x number of times by adding the count, or in the case of .a you add a comma then the count like this
Examples
You get the idea ...
Scientific Notations all begin with s
Miscellaneous