簡體   English   中英

Java:不兼容的類型:java.lang.String 不能轉換為 int

[英]Java:incompatible types: java.lang.String cannot be converted to int

有人可以幫我修復我的代碼嗎? 我正在嘗試使用二維數組制作三角形

public class Tri { 
public static void main(String [] args){ 

int rows; 
int columns; 
int i,j; 

int [][] arrayNumbers = new int[5][5]; 

arrayNumbers[0][0] = " "; 
arrayNumbers[1][0] = " "; 
arrayNumbers[2][0] = "*"; 
arrayNumbers[3][0] = " "; 
arrayNumbers[4][0] = " "; 

arrayNumbers[0][1] = " "; 
arrayNumbers[1][1] = "*"; 
arrayNumbers[2][1] = "*"; 
arrayNumbers[3][1] = "*"; 
arrayNumbers[4][1] = " "; 

arrayNumbers[0][2] = "*"; 
arrayNumbers[1][2] = "*"; 
arrayNumbers[2][2] = "*"; 
arrayNumbers[3][2] = "*"; 
arrayNumbers[4][2] = "*"; 

arrayNumbers[0][3] = " "; 
arrayNumbers[1][3] = "*"; 
arrayNumbers[2][3] = "*"; 
arrayNumbers[3][3] = "*"; 
arrayNumbers[4][3] = " "; 

arrayNumbers[0][4] = " "; 
arrayNumbers[1][4] = " "; 
arrayNumbers[2][4] = "*"; 
arrayNumbers[3][4] = " "; 
arrayNumbers[4][4] = " "; 

for(i=0;i<rows;i++){ 
for(j=0;j<columns;j++) { 
System.out.print(arrayNumbers[i][j] + " "); 
} 
System.out.println(" "); 
} 
} 
}

但我不斷收到錯誤消息“Java:不兼容的類型:java.lang.String 無法轉換為 int

知道我哪里出錯了嗎? 它一直說它需要一個 int 但它只找到了一個 String

您正在為數組分配String值。 所以這

int [][] arrayNumbers = new int[5][5]; 

應該

String[][] arrayNumbers = new String[5][5]; 

或者您需要分配int值(如12或 2 31 -1)。

實際上,這無論如何都應該用char數組來完成,如果它必須用 2D 數組來完成的話。

除非您被特別告知將其設為數組,否則有比使用數組更好的方法將形狀打印到控制台。 如果您真的希望將它存儲在數組中,那么char數組是正確的類型。

雖然靜態填充這些值是一種可怕的時間浪費,並且會導致代碼混亂。 如果您考慮如何僅通過使用循環邏輯來生成這樣的形狀,您將看到同樣的方法可以應用於以算法方式初始化數組。

最后,您的代碼,即使是固定的,也不會生成三角形,而是生成菱形。

更換線路

int [][] arrayNumbers = new int[5][5]; 

String [][] arrayNumbers = new String[5][5]; 

暫無
暫無

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

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