Java 错误的数组输入
因此,我想将用户输入引入一个变量,然后将其添加到数组中,但相反,该字符直接进入数组并跳过3行代码。 这里的代码Java 错误的数组输入,java,arrays,string,input,Java,Arrays,String,Input,因此,我想将用户输入引入一个变量,然后将其添加到数组中,但相反,该字符直接进入数组并跳过3行代码。 这里的代码 import java.util.*; public class Hangman{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("Please enter your word and press enter: ");
import java.util.*;
public class Hangman{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Please enter your word and press enter: ");
String word = sc.nextLine();
System.out.println("Please enter a relevant category and press enter: ");
String category = sc.nextLine();
word.toUpperCase();
char charArray[] = new char[word.length()];
for(int i = 0; i<=word.length(); i++){
System.out.println("Category: " + category);
System.out.println("Letters Guessed: " + Arrays.toString(charArray));
System.out.println("Your guess: ");
char guess = sc.nextLine().charAt(0);
compare(guess, word);
charArray[i] = guess;
}
}
public static boolean compare(char guess, String word){
for(int i = 0; i<word.length(); i++){
if(guess == word.charAt(i)){
return true;
}
}
return true;
}
}
有人能给你一些提示吗?你的比较方法无效:
public static boolean compare(char guess, String word){
for(int i = 0; i<word.length(); i++){
if(guess != word.charAt(i)){
return false;
}
}
return true;
}
公共静态布尔比较(字符猜测、字符串字){
对于(int i=0;i首先,您应该按照其他人的建议修改compare()
方法,以便它不总是返回true
第二,您应该在main()
方法中使用返回值。如果比较为真与假,您不清楚要做什么,因此一般来说
if (compare(guess, word)) {
/* Do something */
} else {
/* Do something else here */
}
这篇文章对预期产出和实际产出有一些含糊不清的地方;以下几点必须考虑
字符串是不可变的,但您使用的是word.toUpperCase(),而没有赋值。例如:
word=word.toUpperCase()
您使用的是比较方法,但不是使用其决策方式
如果(比较(猜测,单词)){
}
注:word.toUpperCase()
-字符串是不可变的对象,您应该将结果分配回字符串。而且您的比较
方法没有任何意义,它总是返回真
。请添加一些关于这应该做什么的详细信息。您的代码中有几个问题,但很难判断哪个是真正的错误,哪个是真正的错误ch是你以后要实现的东西。这应该是类似于刽子手的东西吗?类别是什么?
//do something