文字列を受け入れるメソッドを記述し、それが次の基準を満たしているかどうかを判断するための効率的な方法(文字列を10,000回スキャンしない、一時的な結果を保持するための中間文字列を大量に作成する、または文字列のバッシングなど)を見つけたいと思います。 :
- 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;
}
しかし、ご覧char
のとおり、私はすでに1つと3つの一時的な文字列を持っており、何かが正しく感じられません。これを書くためのより良い方法がなければなりません。このメソッドは(テキストドキュメント内のトークン化された単語ごとに)何千回も呼び出されるため、重要です。ですから、それは本当に効率的である必要があります。
前もって感謝します!