字符串无法在java中转换为String []

时间:2015-12-08 13:29:48

标签: java

我是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();
    }
}

帮助我!!!

3 个答案:

答案 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等同,而不说明要将值放在数组中的位置。数组从第一个条目开始计数,第二个条目开始计数,等等。