Java启动错误选择不包含主类型
我是Java和Eclipse的新手。我在谷歌上搜索了很多帮助,但仍然感到困惑。在Eclipse中,我单击run,然后选择Java应用程序,我立即得到这个错误。以下是我的源代码:Java启动错误选择不包含主类型,java,eclipse,types,launching-application,Java,Eclipse,Types,Launching Application,我是Java和Eclipse的新手。我在谷歌上搜索了很多帮助,但仍然感到困惑。在Eclipse中,我单击run,然后选择Java应用程序,我立即得到这个错误。以下是我的源代码: import java.util.Arrays; import java.util.Scanner; public class SliceandDice { void main(String args[]) { System.out.println("This is the BIGGEST pr
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;
}
}
导入java.util.array;
导入java.util.Scanner;
公共类切片和骰子{
void main(字符串参数[]){
System.out.println(“这是最大的程序控制台”);
System.out.println(“每个输入行将是一对用逗号分隔的数字”);
System.out.println(“第一个数字必须是小于10000的无符号数字。最大示例:9999”);
System.out.println(“第二个数字是‘目标’数字”);
System.out.println(“要键入的输入行的示例:”);
系统输出打印项次(“4721,75”);
for(inti=1;i<6;i++)//在这个循环中,每次都有一个新的
//设定。
{
System.out.println(“根据上面的语法规则键入一对数字:”);
String iLine;//声明一个变量来保存名称。
扫描仪输入=新扫描仪(系统输入);
iLine=in.nextLine();//从控制台读取一行。
in.close();//注意2
NumberSet set=ParseRawInput(i,iLine);
if(set.IsValid()){
System.out.println(“有效输入。要拆分的卡号:”+set.getCardNumber()
+“目标编号:”+set.getTargetNumber());
字符串cardNumber=set.getCardNumber();
int target=set.getTargetNumber();
AnalyzenNumber(cardNumber,目标);//求解此组
//数字
}否则{
System.out.println(“无效的数字集。输入格式:nnnn,tttt”);
}
}
}
专用void分析器编号(字符串cn,int t){
int n=cn.length();
int m=n;
整数和=4+3+2+1;
int[]可能的回答=新的int[和];
int-answer=0;
用于(整数位数=1;位数哪个数字位置可以进行多重长度调整
int n=cn.length();
int[]number=new int[n];//保存单个加数
整数和=0;
int LEN=1;//需要时的默认长度
字符串加数=”;
int i;
如果(扩展器==0){
i=0;
而(in)
长度位数=1;
}
System.out.println(加数+“=”+字符串.valueOf(sum));
回报金额;
}
如果(扩展器==1){
i=0;
而(in)
LEN=1;
}
System.out.println(加数+“=”+字符串.valueOf(sum));
回报金额;
}
如果(扩展器==2){
i=0;
而(in)
i=n;//强制退出循环
}
System.out.println(加数+“=”+字符串.valueOf(sum));
回报金额;
}
返回0;
}
私有int FindBiggestNearTarget(int[]可能值,int目标值){
int[]sumArray=possibles;
Arrays.sort(sumArray);
//用于交换值的临时变量
内部温度;
//反转阵列
对于(int i=0;ipublic static void main(String args[])
<classpathentry excluding="**" kind="src" output="target/classes" path="xtend-gen">