2012-04-03 3 views
0

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

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")); 

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

Как мне подсчитать количество раз, которое 'a' или 'и' (например) показано в тексте?

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

ответ

2

Ну, используя str.split('a') с примерном входом "a", вы получаете результат длины 2. Таким образом, с помощью str.split можно предположить, что количество раз, что письмо признакам в тесте длина результирующего массива str.split «s - 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 или другие методы.

+0

Hi. Спасибо за это :) Я явно не хочу раскола. Мне просто нужно подсчитать количество раз, когда в тексте появляется символ или слово (или делится так, как это обычно делается в любом случае?) Извините, если мой исходный пост был введен в заблуждение. Кроме того, как я могу передать мой .txt в этот код (вместо «a»)? – 3quid

+0

@ 3quid Точно как вы это уже делаете. Загрузите в слушателе 'res: array = e.target.data.split ('a');' и затем следуйте остальным моим ответам. –

1
// 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» на любой текст.

Смежные вопросы