Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 项目赢得';不在Eclipse上运行,它不会';你不会给我一个错误吧?_Java - Fatal编程技术网

Java 项目赢得';不在Eclipse上运行,它不会';你不会给我一个错误吧?

Java 项目赢得';不在Eclipse上运行,它不会';你不会给我一个错误吧?,java,Java,所以我的Eclipse运行得很好,它编译了我需要的所有东西。现在我只写了代码,但它没有运行它,它什么都不做。我已经用其他代码测试了Eclipse,它工作得很好,所以我的代码有问题,但我不确定是什么问题 我正在努力完成欧拉项目的第四项挑战: 回文数字的两种读取方式相同。由两个两位数的乘积构成的最大回文是9009=91×99 查找由两个3位数字的乘积构成的最大回文 这是我的密码: package me.practice; public class Main{ public static vo

所以我的Eclipse运行得很好,它编译了我需要的所有东西。现在我只写了代码,但它没有运行它,它什么都不做。我已经用其他代码测试了Eclipse,它工作得很好,所以我的代码有问题,但我不确定是什么问题

我正在努力完成欧拉项目的第四项挑战:

回文数字的两种读取方式相同。由两个两位数的乘积构成的最大回文是9009=91×99

查找由两个3位数字的乘积构成的最大回文

这是我的密码:

package me.practice;

public class Main{  

public static void main(String[] args)
{
    int palindrome = 0;

    for(int i = 0; i < 900; i++)
    {
        int num = (100 + i) * 999;

        String numString = Integer.toString(num);

        String numString_reverse = new StringBuilder(numString).reverse().toString();

        if(numString == numString_reverse)
        {
            palindrome = Integer.parseInt(numString);

            System.out.println(palindrome);

            break;
        }
    }
}
}
package me.practice;
公共类主{
公共静态void main(字符串[]args)
{
int回文=0;
对于(int i=0;i<900;i++)
{
整数=(100+i)*999;
字符串numString=Integer.toString(num);
字符串numString_reverse=新的StringBuilder(numString).reverse().toString();
if(numString==numString\u反向)
{
palindrome=Integer.parseInt(numString);
System.out.println(回文);
打破
}
}
}
}
编辑:我也尝试在Netbeans上运行它,但它不起作用,所以Eclipse很好。

if(numString == numString_reverse)


第一个if语句比较的是字符串引用(每次都是false),而不是它们的内容,这是上面第二个if语句所做的。

问题在于代码: if块永远不会执行,因为两个3位数字相乘得到的最大回文是906609,这是993乘以913得到的

下面给出的上一个解决方案是错误的,对此我深表歉意:

package stackoverflow;

public class Palindrome {
    public static void main(String[] args)
    {
        int palindrome = 0;

        for(int i = 101; i < 999; i++) {
            for(int j=101; j<999; j++) {
            System.out.println("inside for loop");
            int num = i * 999;

            String numString = Integer.toString(num);

            String numString_reverse = new StringBuilder(numString).reverse().toString();

            if(numString.equals(numString_reverse)) {
                System.out.println("inside if block");
                palindrome = Integer.parseInt(numString);

                System.out.println(palindrome);

                break;
            }
            }
        }
    }   
}
package stackoverflow;

public class Palindrome2 {

    public static void main(String[] args) {
        int palindrome;
        for(int i=900; i<999; i++) {
            for(int j=901; j<999; j++) {
                int value=i*j;
                String result=Integer.toString(value);
                String revResult=new StringBuffer(result).reverse().toString();
                if(result.equals(revResult)) {
                    System.out.println(i);
                    System.out.println(j);
                    palindrome=Integer.parseInt(result);
                    System.out.println(palindrome);
                }
            }
        }
    }
}
包堆栈溢出;
公共类回文{
公共静态void main(字符串[]args)
{
int回文=0;
对于(int i=101;i<999;i++){

对于(int j=101;jj)代码的其余部分在哪里?您不能只运行松散的函数,它们需要在一个可以编译的类中。可能您还没有使用类来包装您的主方法。关于
“…所以Eclipse很好”
,当然,记住一个好的经验法则是很好的:如果你认为bug出现在Java、Eclipse或类似的东西中,99.99%的时间你(和我)将是错误的。如果
numString==numString\u reverse
返回false,您可以添加一个else语句来打印消息吗?这样您就可以看到您的代码是否从未找到回文,而不是根本没有运行。另外,请务必阅读。好的,我这样做了,但它似乎仍然没有运行。我不知道您正在谈论的挑战,你确定你的数字序列中有回文吗?在最里面的
中添加
else
语句如果
,你应该会看到所有丢弃的数字。为什么块永远不会运行?使用
for(int i=0;i<900;i++)
投反对票的原因是……?因为你的答案没有解释什么是反对票wrong@ScaryWombat,if块永远不会作为两个数字的乘积执行,一个是0-900,另一个是999,永远不会返回。请仔细查看if块。此外,999*999是998001,而不是999999。
package stackoverflow;

public class Palindrome2 {

    public static void main(String[] args) {
        int palindrome;
        for(int i=900; i<999; i++) {
            for(int j=901; j<999; j++) {
                int value=i*j;
                String result=Integer.toString(value);
                String revResult=new StringBuffer(result).reverse().toString();
                if(result.equals(revResult)) {
                    System.out.println(i);
                    System.out.println(j);
                    palindrome=Integer.parseInt(result);
                    System.out.println(palindrome);
                }
            }
        }
    }
}