当前位置: 首页 > 知识库问答 >
问题:

JAVA Hangman程序在某个索引处显示字母,处理word中字符的多个实例

赵才俊
2023-03-14
if (posOfGuessLetter == -1)
    {
        System.out.print("Your letter was not found in the 
        spaces provided");
    } //if
if (posOfGuessLetter == 0)
    {
        displayWordAsDashes = (guessLetter + 
        displayWordAsDashes.substring(posOfGuessLetter + 1));
        displayWord = 
        displayWordAsDashes.substring(posOfGuessLetter + 1);
    } //if
if (posOfGuessLetter == 9)
    {
    displayWordAsDashes = (displayWordAsDashes.substring(0, 
    posOfGuessLetter) + guessLetter);
    displayWord = (displayWordAsDashes.substring(0, 
    posOfGuessLetter));
    } //if
else
    {
        displayWordAsDashes = (displayWordAsDashes.substring(0, 
        posOfGuessLetter) + guessLetter + 
        displayWordAsDashes.substring(posOfGuessLetter + 1));
        displayWord = (displayWordAsDashes.substring(0, 
        posOfGuessLetter) + 
        (displayWordAsDashes.substring(posOfGuessLetter + 1)));
    }

while (displayWord.contains(guessLetter))
    {
        displayWordAsDashes = (displayWordAsDashes.substring(0, 
        posOfGuessLetter) + guessLetter + 
        displayWordAsDashes.substring(posOfGuessLetter + 1));
        displayWord = (displayWordAsDashes.substring(0, 
        posOfGuessLetter) + 
        (displayWordAsDashes.substring(posOfGuessLetter + 1)));
    } //while
    } //else
System.out.print("The updated word is: " + 
displayWordAsDashes);

我正在尝试创建一个hangman程序,在这一部分中,它检查用户输入的索引位置,查找他们想在单词中找到的字符,然后删除该索引上的破折号,并显示他们刚刚猜到的字母。但是,如果单词有两个相同的字母(即缩小,循环),我的程序不会同时显示两个字母,这就是我试图在末尾编写while循环的目的。谁能告诉我我把什么搞砸了吗??

共有1个答案

司英飙
2023-03-14

我没有看到您出现了什么错误,但是由于以下原因,pos==0和pos==9都是多余的

aString.substring(aString.length());

aString.substring(0, 0);

两者都返回空字符串。

如果你不需要跟踪这封信在哪里,你可以这样做:

private String wordToGuess = "hangman";
private String guessedSoFar = wordToGuess.replaceAll(".", "-");
private String leftToGuess = wordToGuess;

public String guess(char c) {
    for(int i = 0 ; i < leftToGuess.length() ; i++) {
        if(leftToGuess.charAt(i) == c) {
            guessedSoFar = guessedSoFar.substring(0, i) + c + guessedSoFar.substring(i + 1);
        }
    }
    leftToGuess = leftToGuess.replace(c, '-');
    return guessedSoFar;
}
 类似资料:
  • 问题内容: 用CSS和JavaScript逐个字母显示html文本(例如视频游戏字幕)的最优雅的方法是什么? 虽然我确定可以使用蛮力方法解决他的问题(例如,将字符拆分并使用逐个打印),但我希望有一些CSS3(伪元素?)或JQuery魔术可以做到这一点更优雅。 如果解决方案考虑内部HTML内容,则需要加分。 问题答案: HTML Java脚本 致电:

  • 本文向大家介绍在Java字符串中最多显示10个字符,包括了在Java字符串中最多显示10个字符的使用技巧和注意事项,需要的朋友参考一下 要在一个字符串中最多显示10个字符,请使用Formatter类。 为Java中的Formatter类导入以下软件包- 创建一个新的Formatter对象- 现在让我们在一个字符串中最多显示10个字符- 以下是一个例子- 示例 输出结果

  • 例10.4 编写一个把字符串中空格和TAB压缩掉的子程序Compress,字符串String是以ASCII码0为结束符。 解: .MODEL SMALL, C .DATA SPACE EQU 20H TAB EQU 9H Buff DB "123 4 Ab cdef", 0 .CODE Compress PROC USES AX BX SI DS,String:FAR PTR BYTE LDS S

  • 例10.2 编写一个把字符串中的所有小写字符转换成大写字符的子程序Strupr,要求字符串的首地址和结束符为其入口参数。 解: .MODEL SMALL,C .DATA buff DB"This is a example.", 0 .CODE Strupr PROC USES AX BX, String:PTR BYTE,Tail:BYTE MOV BX, String .REPEAT MOV A

  • 第10章 应用程序的设计 在前面各章节中,我们侧重介绍了汇编语言程序设计中各组成部分的作用,本章的重点是对前面所学知识的综合运用。希望通过各种不同类型的例子,使读者能够掌握用汇编语言编程的基本技巧。 10.1 字符串的处理程序 字符或字符串是一类重要的非数值计算的处理对象。许多编辑软件都具有字符串查找、替换、大小写的转换、单词的自动识别等功能,网络上的信息搜索也是现在一种常用的功能等,这些功能的实

  • 问题内容: 如何在特定索引处拆分字符串?例如,在索引10处分割字符串,使该字符串现在等于直到索引10的所有内容,然后转储其余部分。 问题答案: 关于或取决于索引10是否应包含或不包含索引呢?您必须检查一下。 一个替代方案是