识别字符串中的大写字母和位置

时间:2014-03-10 13:20:18

标签: java regex string character

所以我有一个字符串H

我想扫描字符串并检查某个点上的字母是否为Capital,如果是:将该大写字母的位置存储在数组中。

我相信Regex是我想要使用的工具,但我无法破译它是如何工作的。

有没有办法做类似的事情:

int i = 0;
int j = 0;
int length = H.length()
int[] positionalarray = new int[length];
while(i < length)
{
   if(H[i]isCapital) //or something along those lines:
   {
       positionalarray[j] = i;
       j++;
   }
}

解决方案的关键在于'模拟'H [i] isCapital

的正确语法是什么?

2 个答案:

答案 0 :(得分:2)

您需要的是

Character.isUpperCase(H.charAt(i));

答案 1 :(得分:0)

java正则表达式Pattern class 提供了此功能。这也使用unicode uppercase character category支持非ascii大写字母。

    Pattern pattern = Pattern.compile("\\p{Lu}");
    Matcher matcher = pattern.matcher("A string containing these letters: Ä Æ É.");
    while (matcher.find()) {
        System.out.format("Position: %d, letter: %s\n", matcher.start(), matcher.group());
    }