我是java的新手。我需要将用户输入(String)存储到某个项目的字符串数组中。我已经完成了以下代码,但错误是String无法转换为String []。
public class Customer {
final int NUMBER_OF_CUSTOMER = 7;
int MIN_BUY_AMOUNT = 10;
int MAX_BUY_AMOUNT = 400;
private String[] name = new String[10];
private float[] purchaseAmount = new float[10];
private float[] total = new float[10];
public Customer() {
System.out.println("Welcome to Groccery");
}
public void setCustomerName(int count) {
System.out.print("Enter the name for Customer " + count + ": ");
Scanner in = new Scanner(System.in);
name = in.nextLine();
}
}
帮助我!!!
答案 0 :(得分:0)
错误显示您正在尝试将String
转换为String[]
。这是:
name = in.nextLine();
扫描仪的nextLine()
方法会返回String
,但您要将其分配给String[]
。如果要将此名称添加到字符串(可能是int count
的用途),您可以使用:
name[count] = in.nextLine();
但是,您必须验证count
,因为如果它小于0或大于9,您将获得ArrayIndexOutOfBoundsException
。
答案 1 :(得分:0)
数组需要一个从0开始的索引号,例如:
Option Explicit
Dim objHTTP, url, param
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
url = "http://localhost:8080/xyz/processKey"
param = "key=abcd"
objHTTP.open "GET", url + "?" + param, False
objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.send
WScript.Echo objHTTP.responseText
要从Array中获取元素数据,您需要迭代它并通过相同的索引号访问每个数组元素,例如:
name[0] = "John Doe"
name[1] = "Jack Black"
name[2] = "Whoson First"
......... etc.
在您的代码中,您已经建立了名称数组,并为其提供了10个数据元素的大小。换句话说,您的阵列最多可容纳10个客户名称。相当有限,因为很难强制数组动态增长,因为需要将更多的客户名称存储到阵列中(我确信最终会有超过10个客户)。这是ArrayList更好用的地方,因为它可以非常容易地根据需要增长。请参阅JavaDoc有关ArrayList类的信息。
答案 2 :(得分:0)
您可以使用for循环逐个填充数组,但数组本质上是数据类型的集合或列表。所以你可以尝试类似的东西:
for(int x = 0; x < (however many entries you want -1); x++)
{
name[x] = in.nextLine();
}
或者,您可以使用计数变量
name[count] = in.nextLine();
您不能尝试将数组与字符串或int等同,而不说明要将值放在数组中的位置。数组从第一个条目开始计数,第二个条目开始计数,等等。