Подсчитать количество определенных символов или строк в текстовом файле - PullRequest
0 голосов
/ 03 апреля 2012

Если я загружаю текстовый файл в мой флэш-фильм, используя следующее ...

var myTextLoader:URLLoader = new URLLoader();


myTextLoader.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(e:Event):void {
    var myArrayOfLines:Array = e.target.data.split("a")
    trace(myArrayOfLines);

}

myTextLoader.load(new URLRequest("OoS/OoS-intro.txt"));

Я импортирую свой текст, и он разбивает его каждый раз, когда обнаруживается буква «а».Это нормально.

Как бы я посчитал, сколько раз в тексте фигурируют слова «а» или «и» (например)?

Спасибо за любую помощь:)

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Ну, используя str.split('a'), с примером ввода "a", вы получите результат длины 2. Таким образом, используя str.split, вы можете предположить, что количество раз, которое эта буква фигурирует в тесте, равно длина массива результатов str.split - 1.

var res:Array = "a".split('a');
trace (res.length) // 2
trace (res) // , -- empty string on either side of the split
var count:int = res.length - 1 // 1

res = "aa".split('a');
trace (res.length) // 3
trace (res) // , , -- empty string times 3!
count = res.length - 1 // 2

Это не лучшее решение, но оно работает. Вы также можете использовать RegExp или множество других методов.

1 голос
/ 03 апреля 2012
// less objects created:
var s:String = "  sfd sfd aa sfd  sa asfd asfd  asfd  asdf  asdf aa";
trace( s.match(/a/g).length );

// more generically:
var txt:String = "a";
var pattern:RegExp = new RegExp(txt,"g"); 
trace(s.match(pattern).length);

// to see what is going on:
trace(s.split("a").length);
trace(s.split("a"));
trace(s.match(/a/g));

Заменить 'a' любым текстом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...