A Flash Developer Resource Site

Results 1 to 6 of 6

Thread: Letter Count

  1. #1
    Junior Member
    Join Date
    Jan 2010
    Posts
    5

    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.

  2. #2
    Senior Member cancerinform's Avatar
    Join Date
    Mar 2002
    Location
    press the picture...
    Posts
    13,449
    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. -

  3. #3
    Junior Member
    Join Date
    Jan 2010
    Posts
    5
    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?

  4. #4
    Will moderate for beer
    Join Date
    Apr 2007
    Location
    Austin, TX
    Posts
    6,801
    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;
    }

  5. #5
    Junior Member
    Join Date
    Jan 2010
    Posts
    5
    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.

  6. #6
    Will moderate for beer
    Join Date
    Apr 2007
    Location
    Austin, TX
    Posts
    6,801
    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
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center