2013-10-01 195 views
-5

計數的字符occurence在接受採訪時有人問我這樣的問題:從控制檯輸入流

從像控制檯以輸入:「歡迎世界」和計數由用戶輸入的特定字符在該指數多少次(即字符的次數),而無需使用像charAt(int ind)

+4

而你的問題是... –

+7

還有,你試過這麼遠嗎? –

+5

你是否找到了工作? :P – user2339071

回答

7

任何內置的方法給你一個答案盆栽不會幫你的。以下是你如何達到你想要的。嘗試自己編碼。

  1. 將您的字符串轉換爲字符數組。
  2. 有一個Map將存儲char元素作爲鍵和它的計數值。
  3. 遍歷char數組和每個元素,檢查它是否已經存在於地圖中。
    a。如果存在,則將該元素的值增加1並將其放回地圖中。 b。如果不存在,則將該char和1一起作爲其計數值插入到地圖中。
  4. 繼續,直到char數組中有更多的元素。
  5. 該地圖現在包含所有字符及其各自的計數。
+0

只有一個提示:直接使用'Map'而不是'HashMap'。有關此主題的更多信息,請參閱http://stackoverflow.com/q/383947/1065197 –

+1

@LuiggiMendoza - 建議採取! :)當Map啓動時,我進入了'java'模式,因爲我經常使用'Map map = new HashMap()'! – SudoRahul

0
import java.io.Console; 
class dev 
{ 
    public static void main(String arg[]) 
    { 
     Console c=System.console(); 
     String str=c.readLine(); 
     System.out.println(str); 
     int times=0; 
     //find c character 
     char find='c'; 
     char strChar[]=str.toCharArray(); 
     System.out.print("positions of char c in the string :"); 
     try 
     { 
      for (int i=0; ;i++) 
      { 
       if(strChar[i]==find) 
       { 
        System.out.print((i-1)+", ");times++; 
       } 
      } 
     } 
     catch (Exception e) 
     { 
      System.out.println("\n"+"The no. of times c occur : "+times); 
     } 
    } 
} 
+2

您正在使用IndexOutOfBoundsException終止您的for循環?大膽的選擇! – Henrik