Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

HW4_P2 - MyString The String class is provided in the Java library. Provide your

ID: 3870053 • Letter: H

Question

HW4_P2 - MyString

The String class is provided in the Java library. Provide your own implementation for the following methods (name the new class MyString):

**DO NOT USE THE STRING OBJECT AND ITS METHODS. IMPLEMENT THEM ALL AGAIN YOURSELF!

**You can use char[] and Character object.

public MyString(char[] chars);

public char charAt(int index);

public int length();

public MyString substring(int begin, int end);

public MyString toLowerCase();

public boolean equals(MyString s);

public static MyString valueOf(int i);

public char[] toChars();

------------------------------------------------------------------------------------

Use this code for the main (do not change, please):

class DriverMain{

public static void main(String[] args) {

  

MyString s1 = new MyString(new char[] {'A', 'B', 'C'});

System.out.println(s1.length());

System.out.println(s1.charAt(1));

MyString s2 = s1.substring(0,2);

System.out.println(s2.toLowerCase().equals(new MyString(new char[] {'a', 'b'})));

char[] chars = MyString.valueOf(345).toChars();

for (int i = 0; i < chars.length; i++) {

System.out.print(chars[i]);

}

}

}

Explanation / Answer

public class MyString{

static char[] c;

static int length;

public MyString(char[] chars){

length=chars.length;

c = new char[length];

for(int i=0;i<length;i++){

c[i]=chars[i];

}

}

public char charAt(int index){

return c[index];

}

public int length(){

return length;

}

public MyString substring(int begin, int end){

char[] c1=new char[end-begin];

for(int i=0;i<(end-begin);i++){

c1[i]=c[i+begin];

}

MyString m = new MyString(c1);

return m;

}

public MyString toLowerCase(){

for(int i=0;i<length;i++){

c[i]=Character.toLowerCase(c[i]);

}

return this;

}

public boolean equals(MyString s){

if (length!=s.length)return false;

for(int i=0;i<length;i++){

if(c[i]!=s.charAt(i))return false;

}

return true;

}

public static MyString valueOf(int i){

int remainder[]=new remainder[100];

int index=0;

length=0;

while(i>0){

remainder[index]=i%10;

c[index]=Character.forDigit(remainder[index],10);

i=i/10;

length++;

index++;

}

//Reverse the array

for(int i=0;i<length/2;i++){

char ch=c[i];

c[i]=c[length-1-i];

c[length-1-i]=ch;

}

return new MyString(c);

}

public char[] toChars(){

return c;

}

}