我有一个简单的java任务。我需要确定字符串是否以字母A到I开头。我知道我必须使用string.startsWith();但我不想写,if(string.startsWith("a"));
一直到我,它似乎有效。我应该使用某种循环吗?
答案 0 :(得分:27)
您不需要正则表达式。
试试这个,假设你只想要大写:
char c = string.charAt(0);
if (c >= 'A' && c <= 'I') { ... }
如果你确实想要一个正则表达式解决方案,你可以使用它(ideone):
if (string.matches("^[A-I].*$")) { ... }
答案 1 :(得分:3)
if ( string.charAt(0) >= 'A' && string.charAt(0) <= 'I' )
{
}
应该这样做
答案 2 :(得分:2)
为简洁起见,这是怎么回事?
if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) {
// string starts with a character between 'A' and 'I' inclusive
}
答案 3 :(得分:1)
尝试
string.charAt(0) >= 'a' && string.charAt(0) <= 'j'
答案 4 :(得分: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;
}
这是任何内联解决方案的首选。对于win,将其标记为final,因此java会为您编写内容并为您提供比编码内联解决方案更好的性能。
答案 5 :(得分:0)
if(string.toUpperCase()。charAt(0)&gt; ='A'&amp;&amp; string.toUpperCase()。charAt(0)&lt; ='I')
应该是最简单的版本......