*注意:我没有要求你做我的家庭作业。我只是卡住了。
我正在设计一个Hangman课程。显然,我们需要三个StringBuilders(a)一个显示连字符:"--------"
单词的长度,b)一个显示正确的字母猜测:"--a--e---"
,最后c)另一个基本上是b的对面(猜测的字母用连字符和未透露的字母代替)。 c)的目的是在猜测期间查看是否有任何匹配。
我最大的问题是我在Google上找不到很多实用的StringBuilder示例,即我最大的问题是我可以/应该在Hangman类中实例化三个StringBuilders吗?
感谢...
答案 0 :(得分:2)
我在这里猜测你有一个Hangman类,它可以作为一个模型来完成三件事(与此相关):
这些都取决于模型的状态
基于此我会说你应该有三个返回Strings的方法,并在每个方法中创建一个新的StringBuilder实例。构建一个字符串与状态是分开的,只是为了清楚我不同意Computerish的原因。
StringBuilder是一种更有效的方法来构建字符串然后只使用串联,但它很容易使用。首先要创建它的实例。
StringBuilder builder = new StringBuilder();
然后通过附加字符串或字符(或其他内容)来构建字符串:
builder.append('-');
builder.append('w');
完成后,从StringBuilder构造一个String实例:
String string = builder.toString();
你最终会得到“-w”,这是一个相当无聊的例子。
答案 1 :(得分:0)
一个简短的例子:
StringBuilder helloWorldBuilder = new StringBuilder();
helloWorldBuilder.append("Hello");
helloWorldBuilder.append(" ");
helloWorldBuilder.append("World");
helloWorldBuilder.append("!");
String helloWorld = helloWorldBuilder.toString();
是的,您可以根据需要创建尽可能多的StringBuilder
个对象(假设您拥有无限堆,但几乎可以说:“尽可能多的”,这比3更大:-))
答案 2 :(得分:0)
StringBuilder的目的是在消耗之前构建一个字符串。它们应该每次都是新鲜的(这对于未来更严峻的问题是很好的做法)。因此,不要考虑stringbuilder类,而是考虑如何构建所需的字符串。假设您在char数组中存储了正确的猜测,您可以根据需要使用三种方法来构建字符串。在其中一种情况下,您根本不需要StringBuilder。
您的ToBlankFormat
方法可能如下所示:
public String toBlankFormat()
{
char[] format = new char[answer.length()];
Arrays.fill(format, '-');
return new String(format);
}
基本上,要使用StringBuilder,您只需追加字符串,字符等,然后调用ToString()
方法。一个例子如下:
public String example()
{
StringBuilder builder = new StringBuilder("Hello"); // initial value
if (addSpaces)
{
builder.append(" ");
}
builder.append("World");
return builder.ToString();
}
答案 3 :(得分:-1)
三个StringBuilder应该是您的类的实例变量。您可以在类构造函数中实例化它们,也可以在选择正在猜测的单词时对它们进行实例化。