每当我检查用户输入时,它总是变得非常混乱。这方面的一个例子可能是地址输入。你可以有以下内容:
13B 大街 13 B 大街 13B 大街 13 B 大街
如果我正在编码这个,它最终会像
String number,letter,street; //To be filled with "13","B","Main Street"
String address = getUserInput();
String[] tokens = address.split(" ");
if(tokens[0].isNumeric() == false){
//It could be 13B rather than 13
String number = "";
for(Character c: tokens[0].toCharArray()){
if(c.isDigit() == false){
//We could have found the apartment letter
if(number.isEmpty()){
//The address is invalid, throw error.
} else {
//Make sure it was a letter
if(c.isLetter()){
letter = c;
} else {
//throw error
}
}
} else {
number += c;
}
}
} else {
//...continue all other possibilities
}
请注意,上面的代码是我快速拼凑起来的——有些方法不存在并且无法编译。
我的意思是它看起来很乱。ifs里面有很多ifs。当我看着它时,我看到了一些非常不雅的东西。如果我真的要对整个事物进行编码,能够以这 4 种格式获取地址,那将是数十行代码。
我在这里缺少一个技巧吗?有没有办法让它变得不那么丑陋?