将字符串转换为二维数组上的字符(java)

问题描述:

我想用5个字填充2D字符数组。每个字符串必须分成单个字符并填充数组的一行。将字符串转换为二维数组上的字符(java)

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

我的错误是在3号线,我不知道如何将字符串“hello”分割成字符,并填写只有2维数组

+0

请[MCVE](http://*.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行如果要在阵列填补了第一排,只是它ASIGN第一行:

words[0] = str.toCharArray(); 

因为这将创建数组中一个新的数组,你应该的words的实例改成这样:

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

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