我可以使用哪个例外来检查输入是否具有正确的数字“/” 输入应该像DD / MM / YYYY
try{
String str = text.getText();
StringTokenizer st = new StringTokenizer(str);
String DD = st.nextToken("/");
String MM = st.nextToken("/");
String YYYY = st.nextToken();
}
catch( ???){
}
答案 0 :(得分:1)
你会在nextToken的javadoc中找到它。 它说当没有更多令牌时它将抛出NoSuchElementException。
那说你最好不要使用try / catch,而是使用hasMoreTokens方法测试它。
答案 1 :(得分:1)
您可以使用自定义例外,但为此您需要声明验证日期的方法(斜线数)。
尝试这样
public class Demo
{
public static void main (String[] args) {
try {
new MyClass().metToValidate("01/12/2014");
} catch (A e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class A extends Exception{}
class MyClass{
public void metToValidate(String dateText) throws A{
if( dateText.charAt(2) == '/'&& dateText.charAt(5) == '/' )
System.out.println("DATE IS OK");
else
throw new A();
}
}
答案 2 :(得分:0)
nextToken抛出的异常是NoSuchElementException。
答案 3 :(得分:0)
String str = "12/21223";
int counter = 0;
for( int i=0; i<str.length(); i++ ) {
if( str.charAt(i) == '/' ) {
counter++;
}
}
if(counter == 3){
StringTokenizer st = new StringTokenizer(str);
String DD = st.nextToken("/");
String MM = st.nextToken("/");
String YYYY = st.nextToken();
System.out.println(str);
}else{
System.out.println("Exception");
}