当前位置: 首页 > 面试题库 >

Java启动错误选择不包含主类型

终安和
2023-03-14
问题内容

我是Java和Eclipse的新手。我在Google上寻求了很多帮助,但仍然感到困惑。在Eclipse中,我单击运行,然后选择Java应用程序,我立即收到此错误。这是我的源代码:

import java.util.Arrays;
import java.util.Scanner;

public class SliceandDice {
    void main(String args[]) {
        System.out.println("This is the BIGGEST program console");
        System.out.println("Each input line will be a pair of numbers separated by a COMMA.");
        System.out.println("First number must be an unsigned number less than 10000. Max example: 9999");
        System.out.println("Second number is the 'target' number.");
        System.out.println("Example of an input line to be typed:");
        System.out.println(" 4721 , 75");
        for (int i = 1; i < 6; i++) // each time in this loop, we have a new
                                    // set.
        {
            System.out.println("Type a pair of numbers according to the syntax rules above:");
            String iLine; // Declare a variable to hold the name.
            Scanner in = new Scanner(System.in);
            iLine = in.nextLine(); // Read one line from the console.
            in.close(); // Note 2
            NumberSet set = ParseRawInput(i, iLine);
            if (set.IsValid()) {
                System.out.println("Valid inputs. Card Number to tear apart:" + set.getCardNumber()
                        + "; Target Number: " + set.getTargetNumber());
                String cardNumber = set.getCardNumber();
                int target = set.getTargetNumber();
                AnalyzeNumber(cardNumber, target); // solve for this set of
                                                   // numbers
            } else {
                System.out.println("Invalid set of numbers. Enter in format: nnnn,tttt");
            }
        }
    }

    private void AnalyzeNumber(String cn, int t) {
        int n = cn.length();
        int m = n;
        int sums = 4 + 3 + 2 + 1;
        int[] possibleAnswers = new int[sums];
        int answer = 0;
        for (int digits = 1; digits < m; digits++) {
            possibleAnswers[answer] = PossibleAnswer(0, digits, cn);
            answer++;
        }
        System.out.println("-----------");
        possibleAnswers[answer] = PossibleAnswer(1, 2, cn);
        answer++;
        possibleAnswers[answer] = PossibleAnswer(1, 3, cn);
        answer++;
        System.out.println("-----------");
        possibleAnswers[answer] = PossibleAnswer(2, 2, cn);
        answer++;
        System.out.println("-----------");
        int finalAnswer = FindBiggestNearTarget(possibleAnswers, t);
        System.out.println("Best sum (closet to target) = " + String.valueOf(finalAnswer));
    }

    private int PossibleAnswer(int extender, int lengthDigits, String cn) {
        // extender => which digit position gets multilength adjustment
        int n = cn.length();
        int[] number = new int[n]; // holds individual addends
        int sum = 0;
        int LEN = 1; // default length when we need it
        String addends = "";
        int i;
        if (extender == 0) {
            i = 0;
            while (i < n) {
                addends += cn.substring(i, lengthDigits) + " + ";
                number[i] = Integer.parseInt(cn.substring(i, lengthDigits));
                sum += number[i];
                i = i + lengthDigits; // always increment at least 1 position
                if (i + lengthDigits > n)
                    lengthDigits = 1;
            }
            System.out.println(addends + " = " + String.valueOf(sum));
            return sum;
        }
        if (extender == 1) {
            i = 0;
            while (i < n) {
                addends += cn.substring(i, LEN) + " + ";
                number[i] = Integer.parseInt(cn.substring(i, LEN));
                sum += number[i];
                if (i == 0) {
                    i++;
                    LEN = lengthDigits;
                } else if (i == 1) {
                    i = i + lengthDigits; // i = 3 (last number)
                    LEN = 1;
                } else if (i == 2) {
                    i = 1;
                    LEN = 3;
                } else {
                    i = n; // force exit of while loop
                }
                if (i + LEN > n)
                    LEN = 1;
            }
            System.out.println(addends + " = " + String.valueOf(sum));
            return sum;
        }
        if (extender == 2) {
            i = 0;
            while (i < n) {
                addends += cn.substring(i, LEN) + " + ";
                number[i] = Integer.parseInt(cn.substring(i, LEN));
                sum += number[i];
                i = i + LEN; // always increment at least 1 position
                if (i == extender) {
                    LEN = lengthDigits;
                }
                if (i + LEN > n)
                    i = n; // force out of loop
            }
            System.out.println(addends + " = " + String.valueOf(sum));
            return sum;
        }
        return 0;
    }

    private int FindBiggestNearTarget(int[] possibles, int target) {
        int[] sumArray = possibles;
        Arrays.sort(sumArray);
        // temporary variable for swapping values
        int temp;
        // reverse the array
        for (int i = 0; i < sumArray.length / 2; ++i) {
            temp = sumArray[i];
            sumArray[i] = sumArray[sumArray.length - i - 1];
            sumArray[sumArray.length - i - 1] = temp;
        }

        for (int i = 0; i < sumArray.length; i++) {
            if (sumArray[i] < target) {
                return sumArray[i];
            }
        }
        return -1; // should not occur
    }

    public static NumberSet ParseRawInput(int i, String rawInput) {
        NumberSet errorSet = new NumberSet(-1, "", 0);
        // string[] stringArray = rawInput.Split( new char[] { ','});
        String[] stringArray = rawInput.toString().split(rawInput, ',');
        if (stringArray.length != 2)
            return errorSet; // ensure 2 tokens separated by comma
        // work on 1st token:
        String cardNumberString = stringArray[0].trim(); // trim any whitespace
                                                         // from this token
        if (cardNumberString.length() > 4)
            return errorSet; // ensure token is 4 bytes or less
        // declare token as integer
        int cardNumber = Integer.parseInt(cardNumberString);

        // work on 2nd token:
        String targetNumberString = stringArray[1].trim(); // trim any
                                                           // whitespace from
                                                           // token
        if (targetNumberString.length() > 4)
            return errorSet; // ensure token is 4 bytes or less

        int targetNumber = Integer.parseInt(targetNumberString); // convert into
                                                                 // int

        NumberSet validSet = new NumberSet(i, cardNumberString, targetNumber);
        return validSet;
    }
}

class NumberSet {
    // Java getter & setter
    private String CardNumber;
    private int TargetNumber;
    private int SetNumber;

    public int getSetNumber() {
        return this.SetNumber;
    }

    public String getCardNumber() {
        return this.CardNumber;
    }

    public int getTargetNumber() {
        return this.TargetNumber;
    }

    public NumberSet(int sn, String cn, int t) {
        this.SetNumber = sn;
        this.CardNumber = cn;
        this.TargetNumber = t;
    }

    public Boolean IsValid() {
        if (this.SetNumber < 0)
            return false;
        return true;
    }
}

问题答案:

您不能像在C ++中那样定义main方法

对于Java解释器,main方法必须始终是public和static。因此,您需要将主方法签名更改为

public static void main(String args[])

试试这个,随时问更多。:-)



 类似资料:
  • 所以我有一个任务要做,它在西班牙,但我希望它没事。问题是我按照他们给我的指示做了一切,当我试图用eclipse运行它时,它说“selection不包含main类型”我不知道该怎么做,因为在我的指示中他们没有说要放“main(string.........”。这是我的代码:顺便说一句,TelemetriaEstado和CoordenadaEcuatorial都是他们给我的两个已经完成的类,所以它们应

  • 所以我在Android上做这个蓝牙项目,当我试图运行它(当然是在Android设备上)时,它给了我一条错误消息 我还是蓝牙的初学者。

  • 问题内容: 我正在尝试在新项目中运行一些Java文件。因此,我创建了项目,将文件放入其中,然后尝试运行主文件,以便游戏开始。 我看到一条错误消息。 我尝试了几种方法来运行它: 有人说再次发动日食,尝试了十多次。 有人指出要打开一个新项目,并为旧项目建立一个构建路径。 也没用。 我很确定它一定能正常工作,因为我是几个小时前在学校跑步的。我该如何工作?先感谢您! 问题答案: 希望你尝试以这种方式运行主

  • null 在尝试用Eclipse作为Java应用程序运行时,有人建议我应该做什么?

  • 我在做家庭作业。我们得到了一系列文件,说明中的第一步说,我需要运行我们得到的Java文件之一,它充当测试文件。 这是文件,

  • 我试图在一个新项目中运行一些java文件。所以我做了一个项目,把文件放在里面,我试着运行主文件,这样我的游戏就开始了。 null 我很确定它一定有效,因为我几个小时前在学校运行过它。我怎么让它工作?提前感谢!