gpt4 book ai didi

java - 如何检查字符串是否等于有效字符之一? (棋盘)

转载 作者:行者123 更新时间:2023-11-29 07:05:49 29 4
gpt4 key购买 nike

所以我想检查输入的位置在棋盘中是否有效,

//returns true if the position is in the range of A1-H8

private boolean isValid(String position){
char first=position.charAt(0);
String letter=(""+first).toLowerCase();
boolean validLetter=position.equals("a") || position.equals("b") || position.equals("c")||
position.equals("d") || position.equals("e")|| position.equals("f") || position.equals("g") ||
position.equals("h");

如您所见, boolean 值非常丑陋,那么这样做的更好方法是什么?

顺便问一下,你如何检查第二个字符是否是数字??

===编辑====感谢大家!但是你所有的答案对我来说都太复杂了,我才刚刚开始学习 java,所以你能给我一个更基本的解决问题的方法吗?

最佳答案

一个正则表达式简化了这个:

private boolean isValid(String position) {
return position.matches("^[a-h][1-8]$");
}

如果您对正则表达式不满意,也许这样的东西更适合您:

private boolean isValid(String position) {
if (position.length() != 2) {
return false;
}
char firstChar = position.charAt(0);
List<Character> validFirstChars = Arrays.asList('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h');
if (!validFirstChars.contains(firstChar)) {
return false;
}
char secondChar = position.charAt(1);
List<Character> validSecondChars = Arrays.asList('1', '2', '3', '4', '5', '6', '7', '8');
if (!validSecondChars.contains(secondChar)) {
return false;
}
return true;
}

作为优化,validFirstCharsvalidSecondChars可以制作 final static类的成员,而不是在每次方法调用时实例化。

关于java - 如何检查字符串是否等于有效字符之一? (棋盘),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990496/

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