2013-06-20 61 views
-2

对不起,我对我的程序非常困惑,我试图调用一个方法,该方法返回一个int,但是我想将其传递给字符串变量。我已经获得了方法中的代码,但是现在已经将它移入了我想用checkMatchesSomewhere()调用的方法。将字符串值传递给方法

我想将字符串变量secretWord和secretGuess的值传递给方法,以便它们可以在循环中使用。但它不是编译。有人可以告诉我我做错了什么吗?非常感谢。我是编程新手。

class App 
{ 
    public static void main(String args[]) 
    { 
     App app = new App(); 
    } 
    //constructor 
    public App() 

    { 

     //variables 

     String secretWord = "berry"; 
     String guessword = "furry"; 
     secretMatches = 0; 

       //Call CheckMatchesSomewhere method 
     checkMatchesSomewhere(secretword, guessword); // checks number of matches somewhere in the secretWord 

     // print the number of times the secretChar occurs in the string word 
     System.out.println(secretMatches); 

    } 

    // METHOD THAT CHECKS FOR NUMBER OF MATCHES SOMEWHERE IN THE WORD 

     private int checkMatchesSomewhere(String secretword, String guessword) 

     { 
     // variables 
     String secretWord; 
     String guessWord; 
     int secretMatches = 0; 

     //check each letter in sequence against the secretChar 
     // 
     //a loop which reads through 'secretWord' 
     for (int j = 0; j < secretWord.length(); j++) 
     { 

      //the loop which goes through 'word' 
      for (int i = 0; i < guessWord.length(); i++) 
      { 
       if (guessWord.charAt(i) == secretWord.charAt(j)) 
       { 
        secretMatches++; 

        //break once a match is found anywhere 
        break; 
       } 

      } // end word for loop 

     } // end secretWord for loop 

     // return the number of matches somewhere 
     return secretMatches; 
     } 

} 
+2

你能告诉我们你有什么错误吗?顺便说一下,为什么不使用'equals'而不是检查所有字符是否相等?... – Maroun

+0

对不起,我正在收到错误:找不到符号 \t \t checkMatchesSomewhere(secretword,guessword); //在secretWord中 \t \t^ 符号的地方检查匹配数量:可变secretWord中 位置:类应用 对我所说的方法CheckMatchesSomewhere(...) –

+0

我会强烈建议在开始一个良好的入门书行Java或Oracle的教程。这里有很多问题都表明你对绝对基本知识并没有一个牢固的把握。 –

回答

1

您的代码中至少有10个错误。其中一些错误。

secretMatches = 0; //where is the datatype ?? 

应该int secretMatches = 0;

Java是区分大小写的。

String secretWord = "berry"; //you declared like this 

checkMatchesSomewhere(secretword, guessword); //secretWord should pass here 

而且

String secretWord = null;// you have to intialize it. 
String guessWord = null; // you have to intialize it. 

终于请到通过Basics of java

+0

是的,使用调试器会帮助他很多。 – Maroun

+1

这是他的一个*问题,是的。 –

+0

就是这样。干杯。 –

0

你不应该在checkMatchesSomewhere方法声明secretWordguessWord变量,因为它们已经方法的参数另外你是不是将该方法的结果分配给secretMatches,以便始终报告零匹配。

编辑:只是注意到你已经使用了不同的方法参数的情况。我猜这可能不是有意的。

+0

当然,非常感谢! –

0

我不知道你的逻辑,但commen意识说,当参数传递给一个方法,他们应该被用来代替创建新的。

您正在将参数传递给checkMatchesSomewhere()但未使用它们。