2011-02-10 28 views
1

这是我的作业,明天即将发布,我一直试图在过去的5个小时内完成,但我无法弄清楚。我明白我必须做什么,但我不知道从哪里开始。如果你能帮助我开始或提供一些建议,那就太好了。我可以只是有答案我不能弄明白四,尝试所有东西使用阵列

它必须返回一个int数组,大小为27,由字符串的字符计数组成。

  • “A”的字符必须是在阵列的位置0“一”或数量的计数,
  • “B”的字符必须是在位置“b”或数量的计1的数组,
  • “z”或“Z”字符数的计数必须位于阵列的位置25处,并且所有其他字符的计数必须位于数组的位置26处。

例如

  • 如果s是“”,则阵列中的所有项必须为0。
  • 如果s为“a”,则该阵列中的所有条目都必须是0除外为条目0,这必须是1
  • 如果s是 “BAAA!”,则阵列中的所有条目都必须是除了0:
    • 条目0,它必须是3,
    • 项1,哪一个必须是1,和
    • 条目26,它必须是1

您可以在琴弦S调用的唯一方法是的charAt(int)和长度()。


感谢四看你们所说的一切,它在理解问题,我需要做很多帮助了我。我仍然坚持,但即时通讯缓慢得到这一点。 再次感谢!

+3

好吧,你可以告诉我们一些代码,看看你在哪里卡住。 – chahuistle 2011-02-10 20:31:12

回答

6
  1. 创建27个元素的数组。 Official trail on Arrays

  2. 遍历字符串的所有字符,例如使用一个普通的for循环(Official trail on the for statement)和String.charAt

  3. 对于普通字符,使用类似Character.toUpperCase(currentChar) - 'A'的字符找到对应于该字符的索引。

  4. 使用诸如charSums[index]++之类的东西来递增数组中的相应条目。

+0

+1。另外值得注意的是:您可以在字母表的字母和数组中的索引之间来回转换。 – 2011-02-10 20:32:48

0

所以,基本上你试图计算一个字符串中字母出现的次数。

返回的数组大小为27,因为有26个字母+ 1个非字母字符单元格。

你需要做的很简单, 1)创建一个大小为27(没有必要,因为Java的初始化int数组以0你)特殊的初始化数组,

2)通过串用lenght迭代( )方法

3)在每个迭代使用chartAt()方法来获得角色和你在步骤创建的数组的正确的细胞增加计数1

提示:考虑会有什么“B'- 'a'和'z' - 'a'返回。

0

我打算添加一点,阿尔文提到。记住char不仅仅是一个字符串中的一个字符,也是一个数字。

0

与大家一样的步骤,但是我可能会在步骤4中对我的解决方案进行比您想要更多的细节,因此如果您不需要太多提示,请不要阅读它。

  1. 初始化阵列(INT []数组=新INT [27];

  2. 转换字符串toUpperCase()

  3. 创建一个循环,经过该字符串的每一个字符。 。

  4. 将字符转换为数组索引为此,我建议有一个if/else将您正在使用的char转换为基于大写字母的ASCII值的int(我相信您可以执行这只是做一个(整数)或(整数)类型转换,但我没有编译器在这台计算机上检查)。如果它落在大写字母的ASCII值范围内,则减去'A'的值,使其为0,并使用int值增加数组中的值。如果该值不在ASCII范围内,则默认为else语句并增加a [26]。

  5. 在for循环后返回数组。