我想采用普通字符串,并返回一个只包含大写字母索引的数组。
基本上是这样的:
var str1:String =“TexT STufF” var capArray = [0,3,5,6,9]
我能够为这样的空间做到这一点:
for(var n5=0; n5 < str1.length; n5++)
{
numSpace = str1.indexOf(" ", numSpace+1); //That space is what determines it. How do I make it search for all Caps?
if(numSpace == -1)
{
n5 = str1.length;
}
else{arySpaceInd[n5] = numSpace;}
}
trace(aryVerse);
是否有可能为首都做这件事?
答案 0 :(得分:1)
就像@Cherniv指出的那样,只需将序列中的每个字符转换为大写字母并检查它是否相同。如果是,那就是大写字母。功能示例:
function getIndexes(input:String):Vector.<int>
{
var output:Vector.<int> = new <int>[];
for(var i:int = 0; i < input.length; i++)
{
if(input.charAt(i).toUpperCase() === input.charAt(i))
{
output.push(i);
}
}
return output;
}
测试:
trace(getIndexes("SomeUpperCaseText")); // 0,4,9,13
答案 1 :(得分:1)
我会( mis )使用string#replace()
来做这件事......这样的事情应该有效:
function getIndexes(input:String):Vector.<int>
{
var output:Vector.<int> = new <int>[];
input.replace(/[A-Z]/g, function(match,ndx) { output.push(ndx); return match; });
return output;
}