-
Letter Count
How can I take a user input, for example aaaaddddffttyyzzz and output it like: a4d4f2t2y2z3
I have been scratching my head at this for days now, hoping to seek some answers here.
-
Senior Member
You create a for loop and ask if the string has a, b, c etc. Check out the String class in the AS3 language reference
- The right of the People to create Flash movies shall not be infringed. -
-
Heres what I have so far and it doesnt work...
Actionscript Code:
btn_1.addEventListener(MouseEvent.CLICK, letterCount); var i = 0; var j = 0; var k = 0; var counter = 0; var letters:Array = new Array(); letters[0] = "a"; letters[1] = "b"; letters[2] = "c"; letters[3] = "d"; letters[4] = "e"; letters[5] = "f"; letters[6] = "g"; letters[7] = "h"; letters[8] = "i"; letters[9] = "j"; letters[10] = "k"; letters[11] = "l"; letters[12] = "m"; letters[13] = "n"; letters[14] = "o"; letters[15] = "p"; letters[16] = "q"; letters[17] = "r"; letters[18] = "s"; letters[19] = "t"; letters[20] = "u"; letters[21] = "v"; letters[22] = "w"; letters[23] = "x"; letters[24] = "y"; letters[25] = "z";
function letterCount(event:MouseEvent) { var myStr:String = input_1.text; var letters2:Array = myStr.split(""); for (i=0; i < myStr.length; i++) { myStr.charAt(i); trace(myStr.charAt(i)); trace(letters2[i]); } if (myStr.charAt(j) == letters[k]) { counter++; trace(counter); } else if (myStr.charAt(j) != letters[k]) { j++; } else { j++; k++; } }
maybe im overthinking it?
-
This letters in the output will be in a pseudorandom order. You could alphabetize them if you feel like it.
Code:
private function countLetters(s:String):String {
var letterCounts:Object = {}; //map from letter to int count
var letters:Array = s.split("");
for (var i:int = 0; i < letters.length; i++) {
var l:String = letters[i];
if (letterCounts[l]) {
letterCounts[l] = letterCounts[l]+1;
}else {
letterCounts[l] = 1;
}
}
var toreturn:String = "";
for (var letter:String in letterCounts) {
toreturn += letter + letterCounts[letter];
}
return toreturn;
}
-
ok, I understand all of the above code except for:
Actionscript Code:
var toreturn:String = ""; for (var letter:String in letterCounts) { toreturn += letter + letterCounts[letter]; } return toreturn;
Could someone explain what it does/works?
Thanks.
Last edited by Clearshot13; 03-10-2010 at 08:48 PM.
-
Code:
//This is an empty string. We will build our final output into this
var toreturn:String = "";
//Iterate over the dynamic properties of letterCounts
//letterCounts is an object that looks like this {a:3, b:2, e:1}
for (var letter:String in letterCounts) {
//append a string composed of the letter and the count for that letter
toreturn += letter + letterCounts[letter];
}
//return our final built-up answer
return toreturn;
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|