我正在尝试验证来自文本字段的输入,以便它只包含来自a-z的字符。我使用以下方法来验证输入是否为int:
//VALIDATE IF INPUT IS NUMERIC.
public static boolean isInt(JFXTextField txtUserInput, String userInput) {
try {
int intValidation = Integer.parseInt(userInput);
txtUserInput.setStyle("-fx-border-color: ; -fx-border-width: 0px ;");
return true;
} catch(NumberFormatException exception) {
showErrorMsg("Invalid Input:", "Please enter a numeric-only value");
txtUserInput.setStyle("-fx-border-color: RED; -fx-border-width: 1px ;");
return false;
}
}
如何使用String实现此目的?我知道使用if语句有一种不同的方法,但我想知道是否可以像上面的例子一样捕获异常。
由于
答案 0 :(得分:1)
您可以将matches
与正则表达式一起使用,因此如果您想检查输入是否为int,则可以使用:
String userInput = ...;
if(userInput.matches("\\d+")){
System.out.println("correct");
}else{
System.out.println("Not correct");
}
如果要检查输入是否仅包含字母,可以使用:
if(userInput.matches("[a-zA-Z]+")){
System.out.println("correct");
}else{
System.out.println("Not correct");
}
如果您想检查输入是否包含字母数字,可以使用:
if(userInput.matches("[a-zA-Z0-9]+")){
System.out.println("correct");
}else{
System.out.println("Not correct");
}
答案 1 :(得分:1)
使用正则表达式:
if (!userInput.matches("[a-z]+"))
// Has characters other than a-z
如果你也想允许大写:
if (!userInput.matches("[a-zA-Z]+"))
// Has characters other than a-z or A-Z
答案 2 :(得分:0)
您可以使用以下内容:
if (!userInput.matches(".*[^a-z].*")) {
// Do something
}
@ Bohemian的替代解决方案♦允许大写:
if (!userInput.toLowerCase().matches(".*[^a-z].*")) {
// Do something
}
根据您的消息来源,类似的方法:
public static boolean containsAZ(JFXTextField txtUserInput) {
if (!txtUserInput.getText().toLowerCase().matches(".*[^a-z].*"))
return true;
else
System.err.println("Input is not containing chars between A-Z");
return false;
}
您的问题是,如果可以抛出/捕获异常,您可以执行以下操作:
public static boolean containsAZ(JFXTextField txtUserInput) {
try {
if (!txtUserInput.toLowerCase().matches(".*[^a-z].*")) {
return true;
} else
throw new MyException("Something happened");
} catch (MyException e) {
e.printStackTrace();
}
return false;
}
考虑到你需要一个班级:
class MyException extends Exception {
public MyException(String e) {
System.out.println(e);
}
}
一个抽象的解决方案是:
public class MyException extends Exception {
// special exception code goes here
}
将其扔为:
throw new MyException ("Something happened")
赶上:
catch (MyException e)
{
// Do something
}
有关详细信息,请check this for regex。