我一直致力于编写自己的自定义String方法的小项目。 (替换,concat等...)在面向对象的设计中操纵字符串。 在我的类定义(MyString)中,我编写了一个concat()方法,其返回类型为MyString。
width: auto !important; /*Keep the aspect ratio of the image*/
height: 140px !important;
margin: 0 auto 1em auto; /*Center the image*/
在我的驱动程序中,用户将输入一个字符串。然后被提示输入另一个要连接的字符串。当我去调用方法时,我得到一个不兼容的类型错误,说我发送到它的字符串(compString)不能转换为新的MyString。我创建了一个新的MyString对象,并发送了新的String,我认为这是正确的做法...
public MyString concat(MyString sent)
{
char[] newString = new char[sequence.length + sent.sequence.length];
for(int i = 0; i< sequence.length;i++)
{
newString[i] = sequence[i];
}
for(int i = sequence.length; i < newString.length; i++)
{
newString[i] = sent.charAt(i - sequence.length);
}
sent.sequence = newString;
return sent;
我想将compString连接到原始字符串上,两者都是MyStrings。我怎么去调用这个方法? &#34; MS&#34;作为原始字符串的引用变量。我需要一个新的MyString对象来实现这个目标吗?
MyString ms = new MyString(compString);
System.out.println("Calling the concat() method: " + ms.concat(compString) );
以下是我的构造函数。
答案 0 :(得分:3)
您已将String
传递给期望concat()
的{{1}}方法。首先尝试将它包装在你的班级中:
MyString
我必须承认,这仍然没有多大意义。 ms.concat(new MyString(compString))
已经是ms
的包装器。你想把一个字符串连接到自己吗?然后只需compString
。
答案 1 :(得分:0)
您需要覆盖toString
功能,以便println()
功能正确打印出自定义字符串。
您还需要匹配MyString
功能的预期concat(MyString sent)
类型参数。
类似的东西:
class MyString {
public String toString()
{
return sequence;
}
}
MyString ms = new MyString(compString);
// making assumption that compString is a standard string
System.out.println("Calling the concat() method: " + ms.concat(new MyString(compString)) );