2014-12-07 178 views
-2

我想用5個字填充2D字符數組。每個字符串必須分成單個字符並填充數組的一行。將字符串轉換爲二維數組上的字符(java)

String str = "hello"; 
char[][] words = new char[10][5]; 
words[][] = str.toCharArray(); 

我的錯誤是在3號線,我不知道如何將字符串「hello」分割成字符,並填寫只有2維數組

+0

請[MCVE](http://stackoverflow.com/help/mcve)。 – 2014-12-07 17:05:32

+0

你有錯誤嗎?如果是這樣,編譯器報告的確切錯誤是什麼? JFC! – 2014-12-07 17:06:56

+0

@Mitsos昏暗什麼是字符串?它是std :: string嗎? – 2014-12-07 17:10:21

回答

1

的第1行如果要在陣列填補了第一排,只是它ASIGN第一行:

words[0] = str.toCharArray(); 

因爲這將創建數組中一個新的數組,你應該的words的實例改成這樣:

char[][] words = new char[5][]; 
-1

Java有一個String類。利用它。

很少有人知道你想要什麼。但它也有我推薦的List類。對於這種情況,我建議執行ArrayList

現在解決手頭上的問題,現在該代碼將如何顯示?

List<String> words = new ArrayList<>(); 
words.add("hello"); 
words.add("hello2"); 
words.add("hello3"); 
words.add("hello4"); 
words.add("hello5"); 

for (String s : words) { 
    System.out.println(s); 
} 

對於你的情況,如果你堅持使用數組。

String str="hello"; 
char[][] words = new char[5][]; 
words[][] = str.toCharArray(); 

使用的東西沿着

String str = "hello"; 
char[][] words = new char[5][]; 
words[0] = str.toCharArray(); 

for (int i = 0; i < 5; i++) { 
    System.out.println(words[i]); 
} 

然而行了,何必再發明輪子?然而,有些情況下,這裏的主題可以閱讀更多。

Array versus List<T>: When to use which?

+0

'char [] [] words = new char [ 255] [5];' - 爲什麼'char [255]'? – msrd0 2014-12-07 19:15:00

+0

@ msrd0這只是一個例子。它可以設置爲最長單詞的最大長度。 – Emz 2014-12-07 21:36:44

+0

你爲什麼設置它?這只是不必要的內存使用情況,請將其刪除,因爲我在我的解決方案中發佈了 – msrd0 2014-12-07 21:52:17