Разделить строку в ActionScript? - PullRequest
0 голосов
/ 20 апреля 2009

Как мне сделать это в ActionScript (пример в C #):

string[] arr = { "1.a", "2.b", "3.d", "4.d", "5.d" };
int countD = 0;

for (int i = 0; i < arr.Length; i++)
{
    if (arr[i].Contains("d")) countD++;
}

Мне нужно посчитать символ в массиве строк

Ответы [ 4 ]

2 голосов
/ 20 апреля 2009

Попробуйте это:

for(var i:int = 0; i < arr.Length; i++)
{
    if(arr[i].indexOf("d") != -1)
        countD++;
}

Используйте indexOf, а не содержит. Он вернет -1, если символ отсутствует в строке, иначе строка содержит хотя бы один экземпляр.

0 голосов
/ 22 апреля 2009

Вот четыре способа сделать это ... (ну, что-то)

var myString:String = "The quick brown fox jumped over the lazy "
           + "dog. The quick brown fox jumped over the lazy dog.";
var numOfD:int = 0;

// 1# with an array.filter
numOfD = myString.split("").filter(
            function(s:String, i:int, a:Array):Boolean {
                return s.toLowerCase() == "d"
            }
        ).length;

trace("1# counts ", numOfD); // output 1# counts 4


// 2# with regex match
numOfD = myString.match(/d/gmi).length;
trace("2# counts ", numOfD); // output 2# counts 4

// 3# with for loop
numOfD = 0;
for (var i:int = 0; i < myString.length; )
    numOfD += (myString.charAt(++i).toLocaleLowerCase() == "d");
trace("3# counts ", numOfD); // output 3# counts 4

// 4# with a new prototype function (and regex)
String['prototype'].countOf = 
    function(char:String):int { 
        return this.match(new RegExp(char, "gmi")).length;
    };
// -- compiler 'strict mode' = true
numOfD = myString['countOf']("d");
trace("4# counts ", numOfD); // output 4# counts 4
// -- compiler 'strict mode' = false
numOfD = myString.countOf("d");
trace("4# counts ", numOfD); // output 4# counts 4
0 голосов
/ 20 апреля 2009

Нашли:

var searchString:String = "Lorem ipsum dolor sit amet.";
var index:Number;

index = searchString.indexOf("L");
trace(index); // output: 0

index = searchString.indexOf("l");
trace(index); // output: 14

index = searchString.indexOf("i");
trace(index); // output: 6

index = searchString.indexOf("ipsum");
trace(index); // output: 6

index = searchString.indexOf("i", 7);
trace(index); // output: 19

index = searchString.indexOf("z");
trace(index); // output: -1
0 голосов
/ 20 апреля 2009

Используйте функцию match для строки JavaScript. http://www.cev.washington.edu/lc/CLWEBCLB/jst/js_string.html

Извините, работает так же.

...