簡単なJava=割り当てがあります。文字列がA〜Iの文字で始まるかどうかを判断する必要があります。string.startsWith();を使用する必要があることはわかっていますが、私はしません。書きたいのですが、if(string.startsWith("a"));
はずっと効率的です。何らかのループを使用する必要がありますか?
これには正規表現は必要ありません。
大文字のみが必要だと仮定して、これを試してください。
char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }
ただし、正規表現ソリューションが必要な場合は、これを使用できます( ideone ):
if (string.matches("^[A-I].*$")) { ... }
if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}
やるべきだ
簡潔にするためにこれはどうですか?
if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
// string starts with a character between 'A' and 'I' inclusive
}
試す
string.charAt(0) >= 'a' && string.charAt(0) <= 'j'
char c=string.toLowerCase().charAt(0);
if( c >= 'a' && c <= 'i' )
...
これにより、メソッドとして簡単に抽出できます。
public static boolean startsBetween(String s, char lowest, char highest) {
char c=s.charAt(0);
c=Character.toLowerCase(c); //thx refp
return c >= lowest && c <= highest;
}
これは、どのインラインソリューションよりも非常に好まれます。勝つために、それをfinalとしてタグ付けして、Javaがインライン化し、コード化されたインラインソリューションよりも優れたパフォーマンスを提供します。
if(string.toUpperCase()。charAt(0)> = 'A' && string.toUpperCase()。charAt(0)<= 'I')
最も簡単なバージョンである必要があります...