我正在研究背包问题,我是Java新手。我可以像这样手动添加数字:
// Fill the bag of weights.
//myWeights.bagOfWeights.add(18);
//myWeights.bagOfWeights.add(2);
//System.out.println("Possible answers: ");
//myWeights.fillKnapSack(20);
import java.util.*;
public class KnapSackWeights{
private Sack bagOfWeights = new Sack();
private Sack knapSack = new Sack();
public static void main(String[] args){
KnapSackWeights myWeights = new KnapSackWeights();
Scanner in = new Scanner(System.in);
System.out.println("Enter the input:");
String input = in.nextLine();
String[] sar = input.split(" ");
//System.out.println(inp);
int target = Integer.parseInt(input);
System.out.println(target);
int[] weights_array = new int[26];
int n = input.length()-1;
for(int i=1; i<=n; i++)
{
weights_array[i - 1] = Integer.parseInt(sar[i]);
}
int k = weights_array[0];
myWeights.bagOfWeights.add(target);
//System.out.println(target);
System.out.println("Possible answers: ");
myWeights.fillKnapSack(k);
//myWeights.fillKnapSack(Integer.parseInt(sar[0]));
// Fill the bag of weights.
//myWeights.bagOfWeights.add(11);
//myWeights.bagOfWeights.add(8);
//myWeights.bagOfWeights.add(7);
//myWeights.bagOfWeights.add(6);
//myWeights.bagOfWeights.add(5);
//myWeights.bagOfWeights.add(4);
//System.out.println("Possible answers: ");
//myWeights.fillKnapSack(20);
}
谢谢你的帮助。
您正在使用字符串18 7 4 6
调用ParseInt
方法。由于这不是有效的整数,因此引发NumberFormatException。
您已经将输入拆分为字符串[]sar
。在for
循环中,您已经对sar
中的每个值调用了parseint
,这些值都是有效的整数。好像你什么都准备好了;只需删除int target=integer.parseint(input);
行。
我正在研究背包问题,我是Java新手。我可以像这样手动添加数字: 但是,我无法允许用户输入数字 第一个数字应该是目标,然后是权重<因此,我尝试将用户输入作为字符串,并用空格将其拆分,然后将其转换为整数<接下来,我尝试用两种方法进行parseInt,但都没有成功 以下是代码: 以下是错误: 异常线程"main"java.lang.NumberFormatException:对于输入字符串:"18 7
问题内容: 当我尝试将Integer.parseInt()与单个字符一起使用时,出现此错误。 是什么给我的错误是这样的: 问题答案: 字母不是数字。您是要写数字5吗? 还是您要打印字符的ASCII或Unicode值?
此问题是由打字错误或无法再复制的问题引起的。虽然这里可能有类似的问题,但这一问题的解决方式不太可能对未来的读者有所帮助。 当我尝试将Integer.parseInt()与单个字符一起使用时,我会得到这个错误。 给我带来错误的是:
正在线程“main”java中获取异常。lang.NumberFormatException:对于输入字符串:“8801609054”,即使它可以正确读取格式。 我正在使用 要做到这一点。我发现有类似错误的人通常有空值或空值,但这个有一个值,所以我不确定错误是从哪里来的。
我不断收到错误消息: 线程“main”java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)在java.lang.Integer.ParseInt(Integer.java:580)在java.lang.Integer.ParseInt(Integer.java:615)在TestClass.Mai
我在尝试从jformattedtextfield转换为Double时遇到一个问题。我正在用Java编写我的程序。这是我的最后一个学校项目,任何帮助都会得到的。 我的代码: