Java: 无法访问方法

Java: Can't access method

这是我在 Whosebug 上的第一个问题,如果我做的不对,请告诉我。无论如何,我已经进行了相当彻底的搜索,但似乎无法找到我的问题的答案。我想访问的方法不会在 Java (Jgrasp) 上访问。我不确定为什么,因为我觉得我使用了正确的符号。

//PROJECT EULER Problem #4

//A palindromic number reads the same both ways. The largest palindrome made
//from the product of two 2-digit numbers is 9009 = 91 × 99.

//Find the largest palindrome made from the product of two 3-digit numbers.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PE4

{


   public boolean isPalindrome(int five)
   {

      String word = Integer.toString(five);

      if (word.length()==5 &&word.substring(0,2).equals(word.substring(3,5)))
         return true;

      else if(word.length()==6 &&word.substring(0,3).equals(word.substring(3,6)))
         return true;

      else
         return false;

   }

   public static void NumberFinder()
   {

      for (int i=999; i>599; i--)
      {
         for (int j=999; j>i-300; j--)
         {

            if (isPalindrome(i*j)==true)
            {
               System.out.print(i + ", " + j + " = " + i*j);
               break outerloop;
               }
         }

      }
      return 0; 
   }


   PE4 tester = new PE4();
   tester.NumberFinder();


}

感谢您花时间阅读我的问题。

安娜

在 Java 中,没有可以在 class 方法范围之外执行的代码。当你的程序是运行时,默认执行class的main函数。因此,您应该向 class 添加一个 main 方法并在其中调用 NumberFinder 方法。 另一点是 NumberFinder 是静态的,因此可以直接在 class 上调用它而无需创建 class 的对象。 第三点是静态方法无法访问非静态方法,因此您的 isPalindrome 方法也应该是静态的。

将您的顶层代码放入 main 方法中:

public static void main(String[] args) {
  PE4 tester = new PE4();
  tester.NumberFinder();
}

但这只是第一步。您还必须从 NumberFinder 方法中删除 static 并修复您的算法,该算法实际上不会检测回文数字。提示:new StringBuilder(word).reverse().toString().equals(word)