所以我有一个字符串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
的正确语法是什么?答案 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());
}