确定字符串是否以字母A到I开头

我有一个简单的java任务。 我需要确定一个字符串是否以字母A到I开头。我知道我必须使用string.startsWith(); 但我不想写, if(string.startsWith("a")); 一直到我,似乎在高效。 我应该使用某种循环吗?

您不需要正则表达式。

试试这个,假设你只想要大写:

 char c = string.charAt(0); if (c >= 'A' && c <= 'I') { ... } 

但是,如果您确实需要正则表达式解决方案,则可以使用此( ideone ):

 if (string.matches("^[AI].*$")) { ... } 
 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; } 

这是任何内联解决方案的首选。 对于win,将其标记为final,因此java会为您编写内容并为您提供比编码内联解决方案更好的性能。

if(string.toUpperCase()。charAt(0)> =’A’&& string.toUpperCase()。charAt(0)<='I')

应该是最简单的版本……