2011-12-16 113 views
7

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

+0

大写?小写?要么? – 2011-12-16 21:00:59

+0

如果你需要匹配大写字母和小写字母,请查看我的帖子。马克拜尔斯只匹配大写,我们有几个匹配小写的文章,只需选择一个(并更新你的问题,以澄清你想要哪一个)。 – 2011-12-16 21:04:27

回答

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

应该这样做

26

你不需要为这个正则表达式。

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

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

如果你想有一个正则表达式的解决方案然而,你可以使用这个(ideone):

if (string.matches("^[A-I].*$")) { ... } 
+0

好的,这工作。但是^的意思是什么,而。* $是什么意思?我知道[a-i]的意思是一个通过我 – Archey 2011-12-16 21:09:56

+0

我的意思是,即时通讯问什么^和。* $的意思,以及为什么我需要它。我喜欢了解所有的东西,因为我还没有在计算机科学课上学到这些。 – Archey 2011-12-16 21:20:04

1

尝试

string.charAt(0) >= 'a' && string.charAt(0) <= 'j' 
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将它与您联系起来,并为您提供比编码在线解决方案更好的性能。

2

为了简洁起见,这个怎么样?

if (0 <= "ABCDEFGHI".indexOf(string.charAt(0))) { 
    // string starts with a character between 'A' and 'I' inclusive 
} 
0

如果(string.toUpperCase()。的charAt(0)> = 'A' & & string.toUpperCase()。的charAt(0)< = 'I')

应该是最简单的版本...

相关问题