我必须创建带有字符串和int字段的类。没有参数的构造函数必须初始化:空字符串和int的0值。addChar(char)
方法应允许程序向字符串(name)添加新字符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添加一个字符的方法(有错误)以及如何编写可以使用这些方法来显示它所有工作的程序。谢谢
至少有两个问题无法编译您的代码:-
>
在长度方法中,您有无法访问的代码。在return语句之后有一个永远不会执行的sysout语句。
现在,首先需要解决上述问题。
然后在addChar方法中,实际上需要将char作为参数传递给字符串。你错过了它。此外,您实际上不需要返回刚才添加的字符。因此,不需要返回类型。只要void
就可以OK
。因为您已经有了一个toString方法来恢复修改后的字符串。
因此,您的addChar应该如下所示:-
public void addChar(char ch) {
name += ch;
}
修改后的toString和length方法应如下所示:-
public String toString() {
return name;
}
public int length() {
return name.length();
}
其余均保持不变。
这需要一点重构,但你可以这样做:
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。-字符串是不可变的,因此您无法更改它,当您尝试更改字符串时,实际上会在堆上创建一个新的字符串对象。
-最好使用可变的StringBuilder
或StringBuffer
。
-StringBuilder是从Java 5中诞生的,Java 5不是线程安全的,在StringBuilder到来之前存在as StringBuffer,但它是线程安全的。
//////////////////////编辑部分///////////////////////
这样试试。。。。。。。。。。。。。。。。。。。。。。。。。。
public class Word {
StringBuilder name = new StringBuilder();
int number; // Class variable are already intialized to its initial value,
// in the case of int its 0.
// String already has an overridden toString method, so its not needed
public void addChar(String s) {
name.append(s);
}
public String getString(){
return name.toString();
}
public static void main(String[] args) {
Word w = new Word();
System.out.println(w.getString().length());
w.addChar("hello");
System.out.println(w.getString().length());
w.addChar("Hi");
System.out.println(w.getString().length());
}
}
本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果
这是我的代码: 如何根据爱好对学生进行分组。我尝试了以下代码: 它没有给出正确的答案。
我知道如何计算出字符串中某个字符或数字的索引,但是有没有任何预定义的方法可以用来给我第n个位置的字符?所以在字符串“foo”中,如果我要求索引为0的字符,它会返回“f”。 注意——在上面的问题中,我所说的“字符”不是指字符数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我不会收到char,而是一个字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法
问题内容: 在其他语言(如Java)中,通过字符串文字与初始化程序获得的字符串之间实际上存在区别。在Swift中,它们等同吗? 例如 问题答案: 根据苹果文档,这些声明是等效的: 初始化一个空字符串 要创建一个空的String值作为构建更长的字符串的起点,请为一个变量分配一个空的字符串文字,或者使用初始化语法初始化一个新的String实例: 参考:https : //developer.apple
我创建了一个简单的扫描器,用于计算中的字符串数。txt文件。每个字符串位于下一行。它算错了,每次它给我数字297,甚至有超过20000个字符串。这个txt文件是由我编写的另一个程序创建的,它从网站获取链接,并使用FileWriter和BufferedWriter将其保存到。txt文件。可能有什么问题? 编辑:字符串示例:
问题内容: 我知道如何计算字符串中某个字符或数字的索引,但是我可以使用任何预定义的方法在第n个位置给我该字符吗?因此,在字符串“ foo”中,如果我要求索引为0的字符,它将返回“ f”。 注意-在上述问题中,“字符”不是字符数据类型,而是字符串中的字母或数字。这里重要的是,调用该方法时,我不会收到字符,而是一个字符串(长度为1)。而且我知道substring()方法,但是我想知道是否有更整洁的方法