2011-02-10 24 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循環後返回數組。