Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JAVA字符替换字符串的一部分_Java_String_Methods - Fatal编程技术网

用JAVA字符替换字符串的一部分

用JAVA字符替换字符串的一部分,java,string,methods,Java,String,Methods,我知道我之前在这里问过类似的问题,但我想我已经缩小了我想问的范围。 好的,我正在制作一个程序,在杰迪特控制台上玩绞刑人游戏。用户将一次猜一个字符。在游戏开始时,程序将显示与他们猜测的单词长度相同的星号。他们的猜测和单词中的字母一样多。当他们得到一个正确的字母时,程序将显示字母代替星号。下面是一个控制台的示例 如果单词是家庭作业********* 他们猜字母e****e***(粗体的e只是因为是星星,所以不需要粗体) 然后他们猜字母h**e**** 等等,直到不再有星号为止 所以我创建了一个方法,

我知道我之前在这里问过类似的问题,但我想我已经缩小了我想问的范围。 好的,我正在制作一个程序,在杰迪特控制台上玩绞刑人游戏。用户将一次猜一个字符。在游戏开始时,程序将显示与他们猜测的单词长度相同的星号。他们的猜测和单词中的字母一样多。当他们得到一个正确的字母时,程序将显示字母代替星号。下面是一个控制台的示例

如果单词是家庭作业*********

他们猜字母e****e***(粗体的e只是因为是星星,所以不需要粗体)

然后他们猜字母h**e****

等等,直到不再有星号为止

所以我创建了一个方法,根据单词中字母的数量打印出星号的数量。我不知道如何把字母放在星号的位置。我想知道我是否应该制作一种方法来替换星号,或者我如何才能做到这一点。提前谢谢你的帮助


p、 s我不是要求任何人向我倾倒代码,这不是我想要的。只要有人帮忙,有人问我一些我不懂的问题就好了。顺便说一句,我正在上计算机科学入门课,所以我对java的知识相当低。

有很多方法可以做到这一点。我脑海中浮现的第一个想法是,你可以以一个与答案字符串长度相同的char[]开头。查找Arrays类,寻找用星号填充的简单方法。当用户猜测字母时,搜索该字母的答案字符串并替换char[]的相应索引。然后从char[]中构造一个字符串并显示它。

为什么不做一些更聪明的事情,列出迄今为止猜测的所有
字符,每次你想打印单词时,只需检查每个字母,如果不在集合中,就用*替换它


简短:把目前为止所有的猜测都写下来。您不必使用与向用户显示的数据结构相同的数据结构。

对于******,我将使用字符列表而不是字符串

List<Character> hiddenWord = new ArrayList<Character>();
List hiddenWord=new ArrayList();
用所需的*号实例化列表

创建一个函数来接收猜测的字母。
检查单词是否包含该字母(反复使用indexOf(int ch,int fromIndex)直到你得到-1-阅读它),对于每个结果,你得到的都是=-1,将数组中的位置设置为该字母(类似于
hiddenWord.set(poz,letter)
,其中poz是indexOf的结果,letter是猜测的字母)。

可以使用StringBuffer插入字符串。类中存在StringBuffer方法。
Breifly,您将使用变量
stringword
-来猜测单词,而
StringBuilder guess
来猜测星号和带格字母。当猜到字母时,您将使用setCharAt更新
guess

我只是想确定我理解你。因此,我应该用数组代替带有星号的方法。然后查看作为单词的字符串,并用相同索引处的字母替换星号?再次感谢你的帮助。嗯。。。是吗?:)编辑:在我发布我的评论之前,它只显示了你评论的第一句话。听起来你好像明白我的意思。但我得先打印星号,然后再显示每个字母。我能不能像你说的那样,但向后走?这不是向后走。。就像我说的,每一个字母都不是固定的*