2014-10-20 82 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