簡単な Java の割り当てがあります。文字列が A から I までの文字で始まるかどうかを判断する必要があります。string.startsWith(); を使用する必要があることはわかっています。しかし、私は書きたくありませんif(string.startsWith("a"));
。私にとっては、効率が良いようです。ある種のループを使用する必要がありますか?
56891 次
6 に答える
33
これには正規表現は必要ありません。
大文字のみが必要だと仮定して、これを試してください:
char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }
ただし、正規表現ソリューションが必要な場合は、これを使用できます ( ideone ):
if (string.matches("^[A-I].*$")) { ... }
于 2011-12-16T20:57:08.277 に答える
3
if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}
やるべき
于 2011-12-16T20:56:58.463 に答える
2
簡潔にするためにこれはどうですか?
if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
// string starts with a character between 'A' and 'I' inclusive
}
于 2011-12-16T21:08:38.600 に答える
1
試す
string.charAt(0) >= 'a' && string.charAt(0) <= 'j'
于 2011-12-16T21:00:05.593 に答える
1
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 がインライン化し、コード化されたインライン ソリューションよりも優れたパフォーマンスが得られるようにします。
于 2011-12-16T21:00:47.250 に答える
0
if(string.toUpperCase()。charAt(0)> ='A' && string.toUpperCase()。charAt(0)<='I')
最も簡単なバージョンである必要があります...
于 2011-12-16T21:36:16.010 に答える