From b86a25ce384787c6671a92f2b5bf2c2c2bd79d44 Mon Sep 17 00:00:00 2001 From: Nilstrieb Date: Tue, 17 Nov 2020 14:53:36 +0100 Subject: [PATCH] i've invented the string --- src/StringOfChars.java | 46 ++++++++++++++++++++++++++++++++++++++++++ src/TestClass.java | 8 ++++++++ 2 files changed, 54 insertions(+) create mode 100644 src/StringOfChars.java create mode 100644 src/TestClass.java diff --git a/src/StringOfChars.java b/src/StringOfChars.java new file mode 100644 index 0000000..1b3c7b0 --- /dev/null +++ b/src/StringOfChars.java @@ -0,0 +1,46 @@ +/** + * Chars are quite useful for most applications, but sometimes, you need a lot of them + * Then variable naming can get confusing and char arrays are a bit too complicated to effectively work with + * That's when you should use StringOfChars, it stores a String (or Array) or chars and can be used very easily. + */ +public class StringOfChars { + + private char[] string; + + public StringOfChars(char ... letters){ + this.string = letters; + } + + public String toString(){ + return new String(string); + } + + public char[] toCharArray(){ + return string; + } + + public int length(){ + return string.length; + } + + public char get(int i){ + return string[i]; + } + + public void append(char ... chars){ + append(new StringOfChars(chars)); + } + + public void append(StringOfChars string2){ + char[] newString = new char[this.length() + string2.length()]; + + System.arraycopy(string, 0, newString, 0, this.length()); + + System.arraycopy(string2.toCharArray(), 0, newString, this.length(), string2.toString().length()); + + string = newString; + } + + + +} diff --git a/src/TestClass.java b/src/TestClass.java new file mode 100644 index 0000000..945c476 --- /dev/null +++ b/src/TestClass.java @@ -0,0 +1,8 @@ +public class TestClass { + + public static void main(String[] args) { + StringOfChars s = new StringOfChars('h', 'a'); + s.append(new StringOfChars('l', 'l', 'o')); + System.out.println(s.toString()); + } +}