2017-04-03 60 views
0

我从过去的论文中得到了这个问题,我不确定我是否正确。作为一个字符串的二维数组。初始化

“写下Java代码来声明和初始化一个二维数组,其中包含一周中的天数为 及其三个字母的缩写。”

所以我可以从中得出它需要是一个2d数组作为字符串,因为我们正在存储星期几和缩写。

这个实现是否适合回答这个问题?

string[][] g; 
g = new string[7][1]; 
g[0][0] = "Monday" 
g[0][1] = "Mon" 
g[1][0] = "Tuesday" 
g[1][1] = "Tue" 
+4

正确分开几件事情。在两种情况下都需要大写字符串。您的阵列应该是7x2 - 7天,每天2个字符串。容易犯的错误,因为当数组索引时,最大索引将是1,但大小是2. – Michael

+0

Nop,为了数据描述的缘故,您也可以只使用一个数组...您只是错过了三个字母缩写部分... –

+2

数组中的索引是从零开始的。 'new Type [size]'为'size'元素创建数组,但这些元素的索引从'0'到'size-1'。 – Pshemo

回答

0

差不多。

你想要的数组阵列的尺寸是[7][2] - 它与1D阵列没有区别。 int[] x = new int[2]有两个条目,x[0]x[1]

String是一个类,类以大写字母开头。

你忘记了大部分作业的分号。

所以:

String[][] g; 
g = new String[7][2]; 
g[0][0] = "Monday"; 
g[0][1] = "Mon"; 
g[1][0] = "Tuesday"; 
g[1][1] = "Tue"; 

...等等。

完成这样的工作后,对于您提出的问题而言,这是一个正确的答案,但这不是一个经验丰富的Java开发人员如何编写它的方式。很多人会做出声明,并创建一个步骤:

String[][] g = new String[7][2]; 
g[0][0] = "Monday"; // etc 

很多人会使用填充它的数组文本

String[][] g = new String[][] { 
     { "Monday", "Mon" }, 
     { "Tuesday", "Tue" }, 
     // etc. 
}; 

注意,当你做这种方式,你不需要指定大小,因为它会和文字中的条目数一样大。

+0

FWIW我认为初学者的Java课程似乎对数组有兴趣是很荒谬的。是的,你应该了解它们,但应该晚一点。 – slim

+0

新字符串[7] [2]; = new String [7] [2];编辑您的帖子。 – Sedrick

+0

@SedrickJefferson谢谢 – slim

0

正确。你可以用这种方式声明一个数组,使其更具可读性:

String daysOfWeek[][] = { 
    { "Monday", "Mon" }, 
    { "Tuesday", "Tue" }, 
    // <...> 
}; 
+2

他的问题是“这个实现是否适合......?”他没有要求你以不同的方式去做。 – Michael

+0

另外你不需要'new String [] []'。 – Michael