Char Arrays比较

时间:2013-12-13 15:14:33

标签: java arrays char

我正在尝试构建类似刽子手的东西(适合初学者)

我试试这个:

int i = 0;
int fails = 0;
boolean success = false;
boolean retval;
char[] defineword = new char[] { 'h', 'u', 'n', 'g' };
char[] givenchar = new char[0];
char[] testchar = new char[] { 'h' };

while (success == false && fails < 5) {
    System.out.println("Give a char: ");
    String word = input.next(); // INPUT STRING
    givenchar = word.toCharArray(); // CONVERT

    retval = Arrays.equals(givenchar, testchar);
    System.out.println("THE LETTER IS " + retval);
    if (retval == true) {
        testchar[0] = defineword[i + 1];
    } else {
        fails++;
    }
}

问题是它在字母('u')之后无法继续,它被卡在'u'中。

3 个答案:

答案 0 :(得分:0)

我将做的一个观察是,您只能在givenchartestchar之间进行真正的比较。

retval = Arrays.equals(givenchar, testchar);

一旦过了u,这将无效,因为testchar永远不会超过u。我想你可能打算在某处添加i++

testchar[0] = defineword[i + 1];

答案 1 :(得分:0)

package mer;
import java.util.Scanner;
public class Aswe
{
 int i=0;
 int f=0;
 boolean suc=false;
 boolean ret;
 char[] dw=new char[]{'h','u','n','g'};
 char[] gc=new char[0];
 char[] tc=new char[]{'h'};
 Scanner i1;
 public void me()
  {
   i1=new Scanner(System.in);
   while(suc==false&&f<5)
    {
      System.out.println("give a char");
      String ch=i1.nextLine();

      gc=ch.toCharArray();

      ret=eual(gc,tc);
      System.out.println("the letter is"+ret);

      if(ret)
       {
         tc[0]=dw[i+1];
       }
     else
      f++;
 }
}
public boolean eual(char[] a,char[] b)
{
   if(a[0]==b[0])
    return true;
   else
    return false;
}
  public static void main(String ... args)
 {
   new Aswe().me();
 }
}

答案 2 :(得分:0)

private int fails = 0;
private final int maxFails = 5;

private char[] answer = new char[] {'j','a','v','a'};

public Hangman() {

    Scanner scan = new Scanner(System.in);

    /*
     * Game Loop
     */
    while(fails < maxFails){
        System.out.print("Enter a char: ");
        char givenChar = scan.next().charAt(0);
        System.out.println("Given char is: " + Check(answer,givenChar));
    }
}

/*
 * Check if the char exists in the array.
 */
private boolean Check(char[] array,char value){

    for(int i = 0; i < array.length; i++){
        if(array[i] == value){
            return true;
        }
    }

    /*
     * Okay did not find any char that match return false.
     */
    return false;
}