计算txt文件中特定字符或字符串的数量

时间:2012-04-03 13:41:44

标签: actionscript-3 flash

如果我使用以下内容将txt文件加载到我的Flash影片中......

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 个答案:

答案 0 :(得分:2)

好吧,使用str.split('a'),使用"a"的示例输入,您会得到长度为2的结果。因此,使用str.split,您可以假设该字母的计数次数为测试中的特征是str.split的结果数组的长度 - 。

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 :(得分: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'替换为任何文字。