2013-10-24 87 views
0

使用靜態方法編寫一個類,該方法一次接受一個字符,計算字符數,並在字符不在set {'a'中時引發異常。 'z','0','9','A','Z'}。應拋出異常但未捕獲(即沒有明確的catch塊)。編寫一個調用此方法的客戶端程序,並在方法拋出異常時輸出「輸入錯誤」。如何計算字符數並打印計數

我的問題是,如何計算輸入字符並打印出來?

import java.util.*; 

public class Format { 

    public static int countChars(char c) throws Exception { 
     int count = 0; 


     if (!Character.isLetterOrDigit(c)) { 
      throw new Exception("Input Error"); 
     } 

     return count; 

    } 
    public static void main(String[] args) { 
     char c = ' '; 
     int length = 0; 

     Scanner input = new Scanner(System.in); 
     System.out.println("Please enter a String: "); 
     while (input.hasNext()) { 
       String line = input.nextLine(); 
       for (int i = 0; i < length; i++) { 
        try{ 
        countChars(line.charAt(i)); 
       }catch(Exception e){ 
        System.out.println("Wrong Character"); 
        System.out.println(e.getMessage()); 
        System.exit(0); 
       } 
      } 
     } 
    } 
    // System.out.println("Count: " + count); 
} 
+0

你的設置在哪裏? – Justin

+0

用戶必須輸入集合的字符 – Abner

+0

在這種情況下,您的'countChars'方法必須通過集合。你想要什麼類型的「集合」? – Justin

回答

0

當你想要逐一接受字符,則需要在countChars功能以外的變量。由於您不使用對象,而只使用靜態函數,因此該變量也應該是靜態的。所以,像這樣:

private static int length = 0; 

public static int countChars(char c) throws Exception { 
    length++; 
    //... 
} 

然後,您也可以從主函數訪問變量長度。

+0

現在有道理,謝謝。 – Abner

+0

謝謝你解釋我的代碼:) – Abner

0

Char只能容納一個字符。 A String正在持有一個完整的字符序列。

碰巧一個String有一個方法length()。 ;)