gpt4 book ai didi

java - 有没有更有效的方法来检查字符串中的字符?

转载 作者:行者123 更新时间:2023-12-02 00:59:24 24 4
gpt4 key购买 nike

对于此作业,我需要接受锁组合并检查是否:

  • 长度为 9 个字符
  • 在位置 2,8 处,字符为 R 或 r
  • 位置 5 的字符是 l 或 L
  • 所有其他位置均为整数 0-9

我想知道是否有比检查每个位置的数字更好的方法?

Scanner input = new Scanner(System.in);
String lockComb;
System.out.print("Please enter a lock combination ( ddRddLddR ): ");
lockComb = input.nextLine();

if((lockComb.length() == 9) && ((lockComb.charAt(2) == 'r') || (lockComb.charAt(2) == 'R')) &&
((lockComb.charAt(5) == 'l') || (lockComb.charAt(5) == 'L')) && ((lockComb.charAt(8) == 'r')
|| (lockComb.charAt(8) == 'R')))
{
if((Character.isDigit(lockComb.charAt(0))) && (Character.isDigit(lockComb.charAt(1))) &&
(Character.isDigit(lockComb.charAt(3)) && (Character.isDigit(lockComb.charAt(4))) &&
(Character.isDigit(lockComb.charAt(6))) && (Character.isDigit(lockComb.charAt(7)))))
{
System.out.println(lockComb + " is a valid lock combination!");
}

else
{
System.out.println(lockComb + " is not a valid lock combination!");
}
}

else
{
System.out.println(lockComb + " is not a valid lock combination!");
}

最佳答案

为了简化事情,您可以使用正则表达式:

if (lockComb.matches("[0-9][0-9][rR][0-9][0-9][lL][0-9][0-9][rR]")

(中间是小写-l 和大写-L。)

(无需检查长度,由正则表达式隐式定义。)

关于java - 有没有更有效的方法来检查字符串中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868243/

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