Конвертировать string.Split (',') в массив int - PullRequest
2 голосов
/ 20 июля 2011

У меня есть следующая строка:

"2,26,17,33,6,14,9,29,1"

И массив int, usedIds.

Если я это сделаю:

private var usedIds:Array;
usedIds = "2,26,17,33,6,14,9,29,1".split(',');

Я получаю массив strings.

Как я могу получить массив int?

Ответы [ 4 ]

5 голосов
/ 15 февраля 2013

Самый простой способ - использовать Linq:

int[] usedIds = "2,26,17,33,6,14,9,29,1".split(',').Select(x => int.Parse(x)).ToArray();
2 голосов
/ 20 июля 2011

Вы можете попробовать это:

package 
{
    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite 
    {
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);

        }// end function

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);

            var string:String = "2,26,17,33,6,14,9,29,1";

            var strings:Array = string.split(',');

            var ints:Array = new Array();

            for each(var s:String in strings)
            {
                ints.push(int(s));

            }// end for each

            trace(ints[0]) // output: 2
            trace(ints[0] is int) // output: true

        }// end function

    }// end class

}// end package

[ОБНОВЛЕНИЕ]

Несколько короче версия выше:

var string:String = "2,26,17,33,6,14,9,29,1";

var ints:Array = new Array();

for each(var s:String in string.split(","))
{
    ints.push(int(s));

}// end for each

trace(ints[0]) // output: 2
trace(ints[0] is int) // output: true

[ОБНОВЛЕНИЕ 2]

Самый короткий (не рекомендуется):

var ints:Array = [];

for each(var s:String in "2,26,17,33,6,14,9,29,1".split(",")) ints.push(int(s));

trace(ints[0]) // output: 2
trace(ints[0] is int) // output: true
2 голосов
/ 20 июля 2011

Другой пример:

var a:Array = "2,26,17,33,6,14,9,29,1".split(",");
a.forEach(function(item:*, index:int, array:Array):void{
   array[index] = int(item);
});
1 голос
/ 20 июля 2011

Возможно, вам придется перебрать ваш массив и преобразовать его (проверено):

function splitToInt($input:String,$delimiter:String):Array
{
    var inArr:Array = $input.split($delimiter);
    var outArr:Array = [];
    for each(var index in inArr) {
        trace(index);
        outArr.push(int(index));
    }
    return outArr;  
}

var usedIds:Array = splitToInt("2,26,17,33,6,14,9,29,1",",");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...