0

使用静态方法编写一个类,该方法一次接受一个字符,计算字符数,如果字符不在集合中则抛出异常 { '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);
}
4

2 回答 2

0

由于您想逐个接受字符,因此您需要一个countChars函数外部的变量。由于您不使用对象而只使用静态函数,因此该变量也应该是静态的。所以,像这样:

private static int length = 0;

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

然后,您也可以从 main 函数访问可变长度。

于 2013-10-24T21:24:56.343 回答
0

Char只能容纳一个字符。AString持有一个完整的字符序列。

碰巧 aString有一个名为length(). ;)

于 2013-10-24T21:25:19.370 回答