So far, if I try to use the concat operator I get this error Tester.java:14: cannot find symbol symbol : method concat(MyString) location: class MyString System.out.println(hello.concat(goodbye)); // prints “hellogoodbye”
and when I try to print the “hello” object of MyString I get MyString@558ee9d6 I feel like its soo close to working..
public class MyString { private char[] charString; private String oneString; public MyString(String string) { this.oneString = string; } //second constructor for overloading public MyString(char[] s) { this.charString = s; this.oneString = charString.toString(); } //methods public String toString( char [] s) { return new String(s); } public char charAt(int i) { char [] temp = new char[oneString.length()]; for ( int j = 0; j < oneString.length() ; j++) temp[j] = oneString.charAt(i); return temp[i]; } public String concat ( char[] s) { s.toString(); String result = oneString + s; return result; } public String concat ( String s) { String result = oneString + s; return result; } }
public class Tester { public static void main (String[] args)
{ MyString hello = new MyString("hello"); System.out.println(hello); // right now this prints MyString@558ee9d6 System.out.println(hello.charAt(0)); // works, prints 'h' char[] arr = {'g','o','o','d','b','y','e' }; MyString goodbye = new MyString(arr); // System.out.println(hello.concat(goodbye)); // i can't get this line to work System.out.println(hello.equals(goodbye)); // works, prints false System.out.println(hello.equals(hello)); //works, prints true } }
Advertisement
Answer
You are trying to print an Object :
System.out.println(hello); // right now this prints MyString@558ee9d6
In this case your MyString class
Make the get method to your variable oneString.
public String getOneString() {return this.oneString;}
and then call
System.out.println(hello.getOneString());
Another problem
System.out.println(hello.concat(goodbye));
You concat method receives a string and not a MyString class
You may want to do this
System.out.println(hello.concat(goodbye.getOneString()));
or
public String concat ( MyString myS) { String s = myS.getOneString(); String result = oneString + s; return result; }
Final result:
public class Tester { public static void main (String[] args) { MyString hello = new MyString("hello"); System.out.println(hello.getOneString()); System.out.println(hello.getOneString().charAt(0)); char[] arr = {'g','o','o','d','b','y','e' }; MyString goodbye = new MyString(arr); System.out.println(hello.concat(goodbye.getOneString())); System.out.println(hello.equals(goodbye)); // works, prints false System.out.println(hello.equals(hello)); //works, prints true } }