2014-04-22 105 views
-2

我需要編寫一個關於計算給定單詞中字母按字母順序重複多少次的程序。小寫字母和大寫字母是相等的,它也必須適用於數字。例如:我們不得不使用數組和循環。另外,如果給定的單詞/數字多於一個,它就不能計算空間,並且它還應該提示用戶是否要繼續。如果不是,那麼他們應該輸入一個點'。'或者有點時'。'之後,它應該在計算字母后關閉程序。計算給定單詞中字母的頻率

大學
E:1我:2 N:1 R:1秒:1 T:1 U:1個Y:1

import java.util.Scanner; 
import java.lang.Character; 
public class Array { 

    public static void main(String[] args) { 
     Scanner input=new Scanner (System.in); 
     int[] letters =new int [26]; 
     String str= input.nextLine(); 
     str=str.toLowerCase(); 

     for (int i=0; i<str.length(); i++) 
     { 
      letters[i]=0; 
     } 
     System.out.println(str.length()); 
     System.out.println(char2int('a')); 
     System.out.println(char2int ('D')); 
    } 

    public static int char2int (char c) { 
     return Character.toLowerCase(c)-(int)'a'; 
    } 
} 

這出來,例如

+0

你有什麼問題嗎? – anirudh

+0

我試過改變代碼並添加其他循環,但我不能讓它看起來像我給出的例子。 – user3558676

回答

0

我要去給你一個很大的提示,你需要做的是調用一個方法(比如countLetters),需要一個詞和一封信 - 所以這將是,

// Count the "letter"(s) in the word. 
public static int countLetters(String word, char letter) { 
    int count = 0; 
    if (word != null) { 
    char lc = Character.toLowerCase(letter); 
    for (char c : word.toCharArray()) { 
     if (lc == Character.toLowerCase(c)) { 
     count++; 
     } 
    } 
    } 
    System.out.printf("%s: %d\n", 
     String.valueOf(letter), count); 
    return count; 
} 

public static void main(String[] args) { 
    String test = "Universe"; 
    countLetters(test, 'e'); 
    countLetters(test, 'u'); 
} 

輸出是

e: 2 
u: 1 
+0

我嘗試創建另一個主類來嘗試該程序,但它不會給我相同的結果。我使用netbeans順便說一句,如果這有所作爲,我也是java的初學者。 – user3558676

+0

好。您正在使用IDE。這使我們開始時所做的更容易,比如'vi'和'emacs'。那麼,你認爲'返回Character.toLowerCase(c) - (int)'a'是什麼意思? –

+0

不會將大寫字母轉換爲小寫字母 – user3558676