簡體   English   中英

不兼容的類型錯誤String []

[英]incompatible types error 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保存在split [3]中,但是它不會讓我那樣做,因為epostadr是String []時,split只保存字符串,我該怎么做才能改變它? 任何幫助將不勝感激。

String [] epostadr = split[3]; 

split[3]的類型為Stringepostadr的類型為String[]

也許您想將epostadr聲明為String [不確定我是否遵循您的目標]

首先,您沒有數組:

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教程。

當在String上使用split時,它將使其變成String [],因此在將String作為String []進行拆分時就可以正確理解。 但是,在每個陣列插槽中都有一個字符串。 基本上,您正在嘗試制作epostadr,將其聲明為String [],String,這就是不兼容類型的來源。 String []不能為String。

很難從這段代碼中確切地知道您要做什么,所以我將繼續進行介紹,讓您知道發生了什么。 看起來您正在嘗試獲取存儲在變量ordre中的字符串,並將其拆分,以便每個單詞在名為split的字符串數組中都有其自己的索引。

因此,如果ordre包含字符串“我的名字是瓊斯”。

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

該行將創建一個名為split的數組,其中包含以下值{My,name,is,Jones}

這是您可能需要澄清的部分,似乎您希望這些值位於字符串數組epostadr中,或者只是第三個索引,在本例中為“ Jones”,因為索引從0開始。

將值放在epostadr中將是多余的,因為split已包含這些值。 但是,如果您真的想要復制它,則可以執行此操作。

String [] epostadre = split;

如果只需要第三個索引,則epostadre不能是字符串數組,但必須聲明為字符串,然后您可以執行此操作...

String epostadre = split[3];

在這里,您將聲明一個字符串,該字符串將保留一個值,並將其設置為等於split的第三個索引Jones所包含的字符串。 split [0] =“我的” split [1] =“名稱”,依此類推。

希望對您有所幫助,讓我知道是否需要進一步說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM