我尝试运行程序时出现此错误消息
error: incompatible types
epost = split[3];
^
required: String[]
found: String
这是我的代码:
String [] split = ordre.split(" ");
String [] epostadr;
while(split >= 3) {
String [] epostadr = split[3];
}
我想在split [3]中保存epostadr,但它不会让我这样做,因为split只保存字符串,而epostadr是一个String [],我该怎么做才能改变它? 任何帮助将不胜感激。
答案 0 :(得分:4)
String [] epostadr = split[3];
split[3]
的类型为String
,而epostadr
的类型为String[]
也许您想将epostadr
声明为String
? [不确定我是否遵循你想要达到的目标]
答案 1 :(得分:2)
首先,您没有阵列:
String [] epostadr;
这声明了一个变量,而不是分配给它的数组引用。
然后你有:
String [] epostadr = split[3];
这没有任何意义。 split[3]
是String
;您不能将其分配给声明为String
数组的变量。
如果您需要epostadr
作为数组,则需要创建一个数组,然后分配它,然后将String
放在特定位置:
String [] epostadr = new String[maxNumberOfStrings];
...
epostadr[index] = split[3];
编辑:这忽略了您的其余代码实际上并没有按照您的想法执行。你的while循环(如果写得正确)将永远循环; split.length
永远不会改变。鉴于这些问题,您可能希望投资初学者的Java /编程指南,或至少阅读Oracle网站上提供的Java教程。
答案 2 :(得分:0)
当你在String上使用split时,它会使它成为一个String [],这样你在将split作为String []时就可以了。但是,在每个数组槽中都有一个String。你基本上是在尝试创建epostadr,你声明它是一个String [],一个String,这就是不兼容类型的来源。 String []不能是String。
答案 3 :(得分:0)
很难确切知道你要从这段代码中做些什么,所以我会通过并让你知道发生了什么。看起来你正试图取一个存储在变量ordre中的字符串,并将其拆分,以便每个单词在名为split的字符串数组中都有自己的索引。
因此,如果ordre包含字符串“我的名字是琼斯。”
String [] split = ordre.split(" ");
该行将创建一个名为split的数组,其中包含以下值{My,name,is,Jones}
以下是您可以澄清的部分,看起来您希望这些值在字符串数组epostadr中,或者可能只是第3个索引,在这种情况下将是“Jones”,因为索引从0开始。 / p>
将值放在epostadr中将是多余的,因为split已包含这些值。但如果你真的想要复制它,你可以这样做。
String [] epostadre = split;
如果你只想要第3个索引,epostadre不能是字符串数组,但必须声明为字符串,你会这样做...
String epostadre = split[3];
这里你要声明一个String,它将保存一个值,并将其设置为等于第三个分割索引中包含的字符串,即Jones。 split [0] =“My”split [1] =“name”等等。
我希望这有帮助,如果您需要更多说明,请告诉我。