2012-02-02 88 views
0

我收到此错误信息,当我尝试运行我的程序不兼容的类型错误的String []

error: incompatible types 
     epost = split[3]; 
        ^
required: String[] 
found: String 

这里是我的代码:

String [] split = ordre.split(" "); 
String [] epostadr; 
while(split >= 3) { 
    String [] epostadr = split[3]; 
} 

我想保存在拆分epostadr [3 ]但它不会让我这样做,因为拆分只保存字符串,而epostadr是一个字符串[],我能做些什么来改变它? 任何帮助将不胜感激。

+0

在发布的代码中没有epost。请发布更多代码。当你想保存spli [3]中的epostadr时,它不应该是另外的吗? – kosa 2012-02-02 20:05:50

回答

4
String [] epostadr = split[3]; 

split[3]String类型,而epostadr是类型String[]

也许你想声明epostadrString的? [不知道我下面你想达到什么目的]

2

首先,你没有一个数组:

String [] epostadr; 

声明一个变量不是可以分配给它的数组引用。

然后,你必须:

String [] epostadr = split[3]; 

这是没有意义的。 split[3]String;您不能将其分配给声明为String阵列的变量。

如果您需要epostadr是一个数组,你需要创建一个,分配给它,然后把String在特定位置:

String [] epostadr = new String[maxNumberOfStrings]; 
... 
epostadr[index] = split[3]; 

编辑:,这是忽视了其余的代码实际上并没有做你认为它所做的事情。 while while循环(如果它被正确写入)将永远循环; split.length永远不会改变。鉴于这些问题,您可能希望投资初学者的Java /编程指南,或者至少通过Oracle网站上提供的Java教程。

0

当你在一个字符串上使用split时,它会将它变成一个String [],所以你在做一个String []时进行分割就是正确的。但是,在每个阵列插槽中都有一个字符串。您基本上正在尝试制作epostadr,您将其声明为String [],一个String,这是不兼容类型的来源。一个String []不能是一个String。

0

很难确切地知道你想从这段代码中做什么,所以我会通过并让你知道发生了什么。它看起来像你试图采取存储在变量ordre中的字符串,并将其拆分,以便每个单词在一个名为split的字符串数组中拥有自己的索引。

所以如果ordre包含字符串“我的名字是琼斯。“

String [] split = ordre.split(" "); 

这条线将创建一个包含以下值{我的,名字是,琼斯}

这里的数组命名拆分是,也许你可以澄清部分,它看起来像你想的那些值在字符串数组epostadr中,或者可能只是第三个索引,在这种情况下,索引从0开始将是“Jones”。

将值放在epostadr中将是多余的,因为split已包含这些值。你真的想复制它,你可以这样做。

String [] epostadre = split; 

如果你想只是第三指数,epostadre不能是一个字符串数组,但必须声明为一个字符串,你可以这样做......

String epostadre = split[3]; 

在这里,我们声明字符串,它将保存一个值,并将其设置为等于拆分的第三个索引(即Jones)中包含的字符串。 split [0] =“我的”split [1] =“名称”等等。

我希望有帮助,让我知道如果你需要更多的澄清。