我必须使用String
和int
字段创建课程。没有参数的构造函数必须初始化:空字符串和int的0值。 addChar(char)
方法应该让程序将新的字符添加到字符串(名称)。 toString()
方法应返回此字符串,length()
方法必须显示此字符的数量。我试过这样的事情:
public class Word {
String name;
int number;
public Word() {
name = "";
number = 0;
}
public char addChar() {
return ;
}
public String toString() {
System.out.println(name);
}
public int length() {
return name.length();
System.out.println (name.length());
}
public static void main(String[] args) {
}
}
但是真的不知道如何编写可以向String添加一个char的方法(有错误)以及如何编写可以使用这些方法来显示所有工作的程序。 感谢
答案 0 :(得分:2)
- 当您尝试更改字符串时,String
不可变,所以您无法更改实际上,在堆上创建了一个新的String对象。
- 最好使用可变的StringBuilder
或StringBuffer
。
StringBuilder
来自 Java 5 ,非线程安全,其中{{1} } 在<{strong>}到来之前存在,但线程安全。
//////////////////////编辑部分//////////////////// /// 强>
以这种方式试试..........................
StringBuffer
答案 1 :(得分:1)
您的代码将无法编译至少2个问题: -
您的toString
方法并没有真正返回任何内容。而是打印你的字符串。更改方法正文以返回您的姓名。
在您的长度方法中,您有unreachable code
。在sysout
语句之后,您将永远执行return
语句。
现在,首先您需要解决上述问题。
然后在addChar
方法中,您实际上需要将char
作为parameter
传递给string
。你错过了。另外,您真的不需要return
刚刚添加的char
。因此不需要char
return type
。 void
OK
将为toString
。因为您已经有string
方法来修改addChar
。
因此,您的public void addChar(char ch) {
name += ch;
}
应如下所示: -
toString
您修改后的length
和public String toString() {
return name;
}
public int length() {
return name.length();
}
方法应如下所示: -
{{1}}
休息都没有改变。
答案 2 :(得分:1)
这需要一点点重构,但是你走了:
public class Word {
private String name;
private int number;
public Word() {
name = "";
}
public void addChar(char ch) {
name += ch;
number++;
}
public String toString() {
return name;
}
public int length() {
return number;
}
public static void main(String[] args) {
Word myWord = new Word();
myWord.addChar('H');
System.out.println(myWord);
myWord.addChar('e');
myWord.addChar('l');
myWord.addChar('l');
myWord.addChar('o');
System.out.println(myWord);
System.out.println(myWord.length());
}
}
结果:
H
Hello
5
的变化:
name
。number
。name
的数据类型更改为StringBuilder。答案 3 :(得分:0)
我为你修好了一些代码。
注意:
this("", 0)
调用接受String
和int
的构造函数。
addChar
应该不返回任何内容,只需添加字符。
toString
只返回一个字符串。
代码:
public class Word {
String name;
int number;
public Word() {
this("", 0);
}
public Word(String s) {
this(s, 0);
}
public Word(String s, int i) {
name = s;
number = i;
}
public void addChar(char c) {
name += Character.toString(c);
}
public String toString() {
return name;
}
public int length() {
return name.length();
}
public static void main(String[] args) {
//do stuff
}
}