1

flash as3を使用して、文字列内の大文字の数をカウントするにはどうすればよいですか?

例えば

var thestring = "This is The String";

int3を返す必要があります

ありがとうございました

4

4 に答える 4

12
// Starting string.
var thestring:String = "This is The String";

// Match all capital letters and check the length of the returned match array.
var caps:int = thestring.match(/[A-Z]/g).length;
trace(caps); // 3
于 2012-07-18T07:14:52.843 に答える
3

これを解決する 1 つの方法は、文字列を小文字に変換し、影響を受ける文字を数えることです。つまり、「大文字」のカテゴリに含める文字を指定する必要はありません。これは簡単ではありません。このメソッドは、É などのアクセント付き文字をサポートします。

// Starting string.
var theString:String = "'Ö' is actually the Swedish word for 'island'";

var lowerCase : String = theString.toLowerCase();
var upperCount : int = 0;

for (var i:int = 0; i < theString.length; i++) {
    if (theString.charAt(i) != lowerCase.charAt(i)) {
        upperCount++;
    }
}

trace(upperCount); // prints 2
于 2012-07-19T13:47:38.300 に答える
0

なぜ簡潔にするのですか?つまり、処理能力は使用するために作られています。そう:

const VALUE_0:uint = 0;
const VALUE_1:uint = 1;

var ltrs:String = "This is JUST some random TexT.  How many Caps?";

var cnt:int = 0;

for(var i:int = 0; i < ltrs.length; i++){
    cnt += processLetter(ltrs.substr(i,1));
}

trace("Total capital letters: " + cnt);

function processLetter(char:String):int{
    var asc:int = char.charCodeAt(0);
    if(asc >= Keyboard.A && asc <= Keyboard.Z){
        return VALUE_1;
    }
    return VALUE_0;
}

// Heh heh!
于 2012-07-18T22:50:25.217 に答える
0

文字列内の各文字には、その文字に対応する値があります。

var myString:String = "azAZ";
trace(myString.charCodeAt(0));
trace(myString.charCodeAt(1));
trace(myString.charCodeAt(2));
trace(myString.charCodeAt(3));

// Output is 97, 122, 65, 90

name.charCodeAt(x) は、0 から始まる、文字列内の位置にある文字のコードを返します。

この出力から、a ~ z が 97 ~ 122 の範囲の値であることがわかり、A ~ Z が 65 ~ 90 の範囲の値であることもわかります。

これで、大文字を見つけるための For ループを作成できるようになりました。

var myString:String = "This is The String";
var tally:int = 0;


for (var i:int = 0; i < myString.length; i++)
{
    if (myString.charCodeAt(i) >= 65 && myString.charCodeAt(i) <= 95)
    {
        tally += 1;
    }
}

trace(tally);
// Output is 3.

変数 "tally" は、検出された大文字の数を追跡するために使用されます。For ループでは、分析している現在の文字の値が 65 から 90 の間であるかどうかを確認しています。そうである場合は、集計に 1 を追加し、For ループが終了したときに合計金額を追跡します。

于 2012-07-18T01:51:15.710 に答える