gpt4 book ai didi

Java:确定字符串是否满足多个条件的有效方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:40 27 4
gpt4 key购买 nike

我想找到一种有效的方法(不是扫描字符串 10,000 次,或者创建大量中间字符串来保存临时结果,或者字符串 bashing 等)来编写一个方法来接受一个 String 并确定它是否满足以下条件:

  • 长度至少为2个字符
  • 首字母大写
  • 第一个字符后的剩余子串至少包含1个小写字符

这是我目前的尝试:

private boolean isInProperForm(final String token) {
if(token.length() < 2)
return false;

char firstChar = token.charAt(0);
String restOfToken = token.substring(1);
String firstCharAsString = firstChar + "";
String firstCharStrToUpper = firstCharAsString.toUpperCase();

// TODO: Giving up because this already seems way too complicated/inefficient.
// Ignore the '&& true' clause - left it there as a placeholder so it wouldn't give a compile error.
if(firstCharStrToUpper.equals(firstCharAsString) && true)
return true;

// Presume false if we get here.
return false;
}

但如您所见,我已经有 1 个 char 和 3 个临时字符串,但感觉有些不对劲。必须有更好的方法来编写它。这很重要,因为此方法将被调用成千上万次(对于文本文档中的每个标记化单词)。所以它真的真的需要高效。

提前致谢!

最佳答案

这个函数应该覆盖它。每个字符只检查一次,不创建任何对象。

public static boolean validate(String token) {
if (token == null || token.length() < 2) return false;
if (!Character.isUpperCase(token.charAt(0)) return false;
for (int i = 1; i < token.length(); i++)
if (Character.isLowerCase(token.charAt(i)) return true;
return false;

关于Java:确定字符串是否满足多个条件的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12935588/

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