gpt4 book ai didi

Java 初始化错误

转载 作者:行者123 更新时间:2023-11-30 02:23:52 27 4
gpt4 key购买 nike

double pullPrice(String input){
if(input.length() < 3){
System.out.println("Error: 02; invalid item input, valid example: enter code here'milk 8.50'");
System.exit(0);
}
char[] inputArray = input.toCharArray();
char[] itemPriceArray;
double price;
boolean numVal = false;
int numCount = 0;
for(int i = 0; i <= inputArray.length-1; i ++){
//checking if i need to add char to char array of price
if(numVal == true){
//adding number to price array
itemPriceArray[numCount] = inputArray[i];
numCount++;
}
else{
if(inputArray[i] == ' '){
numVal = true;
//initializing price array
itemPriceArray = new char[inputArray.length - i];
}
else{

}
}


}
price = Double.parseDouble(String.valueOf(itemPriceArray));
return price;
}

问题:尝试将“milk 8.50”之间的空格后面的字符序列作为输入。发生初始化错误是因为我在 if else 语句内初始化 char 数组,如果发现空格,该语句将初始化该数组。

问题:因为在找到空格之前我不知道我的字符计数,是否还有其他方法可以初始化?编译器是否不相信我会在调用 array.

另外,如果我遗漏了某些内容或者有更好的方法来编码这些内容,请告诉我。我正在学习 Java 数据结构类(class)并学习基础数据结构,但同时也想关注效率和模块化。我还有一个 pullPrice 函数,它可以执行相同的操作,但会提取项目名称。我想将它们组合起来,这样我就不必为两者重用相同的代码,但只能返回具有相同数据类型的项目,除非我创建一个类。不幸的是,这个练习要使用两个数组,因为我们正在练习如何使用 ADT 包。任何帮助是极大的赞赏?

最佳答案

尝试这样的事情:

double pullPrice(String input)
{
try
{
// Instantiate a new scanner object, based on the input string
Scanner scanner = new Scanner(input);
// We skip the product (EG "milk")
String prod = scanner.next();
// and read the price(EG 8.5)
double price = scanner.nextDouble();
// We should close the scanner, to free resources...
scanner.close();
return price;
}
catch (NoSuchElementException ex)
{
System.out.println("Error: 02; invalid item input, valid example: enter code here 'milk 8.50'");
System.exit(0);
}

}

关于Java 初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145867/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com