Netbeans 为什么我的word guess程序不将字符输出到破折号中,即使字符位于机密单词中
因此,在我的计算机编程课程中,我们被要求创建一个基本的猜字游戏,我想知道为什么我的程序没有把猜出来的字符放在秘密单词中。以下是我目前拥有的:Netbeans 为什么我的word guess程序不将字符输出到破折号中,即使字符位于机密单词中,netbeans,Netbeans,因此,在我的计算机编程课程中,我们被要求创建一个基本的猜字游戏,我想知道为什么我的程序没有把猜出来的字符放在秘密单词中。以下是我目前拥有的: public static void main(String[] args) { String sW = ""; int numG = 0; String flag = "!"; String wordSF = "", updatedW = ""; String charG, wordG = ""; int
public static void main(String[] args) {
String sW = "";
int numG = 0;
String flag = "!";
String wordSF = "", updatedW = "";
String charG, wordG = "";
int num1 = (int) (20 * Math.random() + 1);
switch (num1) {
case 1:
if (num1 == 1) {
sW = "soup";
}
break;
case 2:
if (num1 == 2) {
sW = "money";
}
break;
case 3:
if (num1 == 3) {
sW = "brain";
}
break;
case 4:
if (num1 == 4) {
sW = "colour";
}
break;
case 5:
if (num1 == 5) {
sW = "batman";
}
break;
case 6:
if (num1 == 6) {
sW = "design";
}
break;
case 7:
if (num1 == 7) {
sW = "media";
}
break;
case 8:
if (num1 == 8) {
sW = "computer";
}
break;
case 9:
if (num1 == 9) {
sW = "monitor";
}
break;
case 10:
if (num1 == 10) {
sW = "password";
}
break;
case 11:
if (num1 == 11) {
sW = "textbook";
}
break;
case 12:
if (num1 == 12) {
sW = "mountain";
}
break;
case 13:
if (num1 == 13) {
sW = "sweater";
}
break;
case 14:
if (num1 == 14) {
sW = "darkness";
}
break;
case 15:
if (num1 == 15) {
sW = "flood";
}
break;
case 16:
if (num1 == 16) {
sW = "plastic";
}
break;
case 17:
if (num1 == 17) {
sW = "elephant";
}
break;
case 18:
if (num1 == 18) {
sW = "cabinet";
}
break;
case 19:
if (num1 == 19) {
sW = "speaker";
}
break;
case 20:
if (num1 == 20) {
sW = "electronic";
}
break;
}
Scanner input = new Scanner(System.in);
for (int i = 0; i < sW.length(); i++) {
wordSF += "-";
}
System.out.println(wordSF + "\n");
do {
System.out.print("Enter a letter or ! to guess the word");
charG = input.nextLine();
charG = charG.toUpperCase();
numG++;
if (sW.contains(charG)) {
updatedW = wordSF.substring(0, sW.indexOf(charG));
updatedW += charG;
updatedW += wordSF.substring(sW.indexOf(charG) + 1, wordSF.length());
wordSF = updatedW;
}
System.out.println(wordSF + "\n");
} while (!charG.equals(flag) && !wordSF.equals(sW));
if (charG.equals(flag)) {
System.out.println("What is your guess? ");
wordG = input.nextLine();
wordG = wordG.toUpperCase();
}
if (wordG.equals(sW) || wordSF.equals(sW)) {
System.out.println("You won");
} else {
System.out.println("you lost");
}
System.out.println("The secret word is " + sW);
System.out.println("You made " + numG + " guesses.");
// TODO code application logic here
}
}
publicstaticvoidmain(字符串[]args){
字符串sW=“”;
int numG=0;
字符串标志=“!”;
字符串wordSF=“”,updatedW=“”;
字符串字符,wordG=“”;
int num1=(int)(20*Math.random()+1);
开关(num1){
案例1:
如果(num1==1){
sW=“汤”;
}
打破
案例2:
如果(num1==2){
sW=“金钱”;
}
打破
案例3:
如果(num1==3){
sW=“大脑”;
}
打破
案例4:
如果(num1==4){
sW=“颜色”;
}
打破
案例5:
如果(num1==5){
sW=“蝙蝠侠”;
}
打破
案例6:
如果(num1==6){
sW=“设计”;
}
打破
案例7:
如果(num1==7){
sW=“媒体”;
}
打破
案例8:
如果(num1==8){
sW=“计算机”;
}
打破
案例9:
如果(num1==9){
sW=“监视器”;
}
打破
案例10:
如果(num1==10){
sW=“密码”;
}
打破
案例11:
如果(num1==11){
sW=“教科书”;
}
打破
案例12:
如果(num1==12){
sW=“山地”;
}
打破
案例13:
如果(num1==13){
sW=“毛衣”;
}
打破
案例14:
如果(num1==14){
sW=“黑暗”;
}
打破
案例15:
如果(num1==15){
sW=“洪水”;
}
打破
案例16:
如果(num1==16){
sW=“塑料”;
}
打破
案例17:
如果(num1==17){
sW=“大象”;
}
打破
案例18:
如果(num1==18){
sW=“内阁”;
}
打破
案例19:
如果(num1==19){
sW=“扬声器”;
}
打破
案例20:
如果(num1==20){
sW=“电子”;
}
打破
}
扫描仪输入=新扫描仪(System.in);
对于(int i=0;i
在这段代码中,您有toUpperCase()。你所有的字都用小写。在小写字中找不到大写字母,因为它们是不同的ASCII值。如果将其更改为toLowerCase(),则它将填充
charG = input.nextLine();
charG = charG.toLowerCase();
numG++;
if (sW.contains(charG)) {
updatedW = wordSF.substring(0, sW.indexOf(charG));
updatedW += charG;
updatedW += wordSF.substring(sW.indexOf(charG) + 1, wordSF.length());
wordSF = updatedW;
}
谢谢你帮我修复了一切