2014-10-20 45 views
-2

我想使用try和catch语句来输入任何其他字词以外的内容。在我以前的经验中,如果没有错误,很难使用它。如果有人输入一个数字,例如他们的名字,他们是没有错误的。无论如何,我可以使用try和catch语句吗?尝试和捕捉单词的语句

try { 
    String firstName, middleInitial, lastName, Firstname; 
    char firstNameCase, middleInitialCase, lastNameCase; 

    firstName = firstNameInput.getText(); 
    middleInitial = middleInitialInput.getText(); 
    lastName = lastNameInput.getText(); 

    char firstNameLetter = firstName.charAt(0); 
    firstNameCase = Character.toLowerCase(firstNameLetter); 

    char lastNameLetter = lastName.charAt(0); 
    lastNameCase = Character.toUpperCase(lastNameLetter); 

    char middleInitialLetter = middleInitial.charAt(0); 
    middleInitialCase = Character.toLowerCase(middleInitialLetter); 

    String firstNameFinal = Character.toString(firstNameCase); 
    String lastNameFinal = Character.toString(lastNameCase); 
    String middleInitialFinal = Character.toString(middleInitialCase); 

    String monogram = firstNameFinal+lastNameFinal + middleInitialFinal; 

    monogramOutput.setText("Your monogram is: " + monogram); 
} catch(I dont know what to put here) { 
    JOptionPane.showMessageDialog(mainPanel, "One or more fields contains invalid data","Error Dialog", JOptionPane.ERROR_MESSAGE); 
} 
+0

您可以明确地检查它是否是一个数字,但你怎么知道它是否是一个“字”。 – brso05 2014-10-20 20:05:13

+0

那么考虑到一个名字*是一个单词,它将很难检查。你想要的实际上非常复杂。词汇分析有点超出了你现在编码的范围。 – christopher 2014-10-20 20:05:30

+0

我不认为他的情况很重要。他只是想要没有数字 – 2014-10-20 20:05:42

回答

0

是否有任何特定原因要使用Try/Catch方法?

我的意思是下面的代码应该做的事情符合你的要求:

Object helloworld = ""; 

if(helloworld instanceof String) { 
    // do something String related to helloworld 
} 

Ofcourse,如果你坚持的try/catch。

尝试放:

catch (Exception ex) 
0

如果我理解你的问题,你可以使用一个Pattern与正则表达式\\D+这将不匹配的数字。

String strFail = "cc1"; 
String strPass = "abc"; 
Pattern p = Pattern.compile("\\D+"); 
System.out.println(strFail + ": " + p.matcher(strFail).matches()); 
System.out.println(strPass + ": " + p.matcher(strPass).matches()); 

输出是

cc1: false 
abc: true