gpt4 book ai didi

java - 编码风格: checking user input is messy. 我做错了吗?

转载 作者:行者123 更新时间:2023-12-02 06:48:22 27 4
gpt4 key购买 nike

每当我检查用户输入时,它总是变得非常困惑。地址输入就是一个例子。您可以拥有以下内容:

13B大街B大街13号大街 13b 号大街13B号

如果我编写这个代码,结果会是这样的

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
}

请注意,上面的代码是我快速拼凑而成的 - 有些方法不存在,因此无法编译。

我的观点是,它看起来很困惑。如果里面有那么多如果。当我看着它时,我看到了一些非常不优雅的东西。如果我真的要对整个事物进行编码,能够获取这 4 种格式的地址,那么这将是大量的代码行。

我在这里缺少什么技巧吗?有没有办法让它不那么难看?

最佳答案

正则表达式通常用于输入验证,并且与您的问题密切相关。可以在这里找到一个优秀的教程:http://www.vogella.com/articles/JavaRegularExpressions/article.html

关于java - 编码风格: checking user input is messy. 我做错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com