Есть несколько способов справиться с этим.
Вы можете использовать «руководство» для цикла:
for (int i = 0; i < number; ++i) {...
... и затем рассматривать случай, когда i + 1 == number.length
, как особый случай.
Вы также можете использовать IntStream
, отобразить это на Stream
, используя mapToObj
, а затем собрать этот поток, используя Collectors.joining(",")
:
[111 ]
Но, вероятно, самый простой способ - использовать Arrays.toString(int[])
. Это создаст строку с пробелом после каждой запятой, но затем вы можете сделать replaceAll(" ", "")
, чтобы удалить это.
Вы имеете в виду for (x in y)
тип цикла foreach? Спецификация AS3 говорит, что для циклов "имеют тот же синтаксис и семантику, как определено в выпуске 3 и E4X ECMA-262".
ECMA-262, разделите 12.6.4 состояний, что "порядок перечисления определяется объектом" - другими словами, это будет зависеть от того, выполняете ли Вы итерации через список, словарь, массив и т.д.
Я надеялся бы, что документация для большинства наборов явно укажет порядок перечисления (или что порядок не определяется), но я не проверил...
Править: К сожалению, спецификации указывают, что "механика перечисления свойств [...] является зависящей от реализации". Я ничего не вижу в документах Массива для определения упорядочивания. Это немного неудовлетворительно, чтобы быть честным :(
Как указано в Существенном Actionscript 3.0 Colin Moock, порядок для каждого в цикле не гарантируется если, перечисляя XML или объект XMLList;
Щелкните здесь для слов Colin Moock из его книги.
Существуют обходные решения, как обсуждено здесь, но честно если необходимо гарантировать, порядок затем просто использует постоянного клиента, старого для цикла, и имеет его, выполняют итерации (длина, numChildren, и т.д.) количества раз.
Порядок оценки, измененной в AS3.0 Ранее, в AS 1.0 и 2.0, порядок оценки был основан на порядке, в котором были добавлены объекты. Теперь, в 3,0, все цикличное выполнение поддерживает заказ массива. Попробуйте отрывок:
var a:Array = new Array();
a[ 1 ] = 'first';
a[ 0 ] = 'second';
for (var key:String in a)
trace( key + ': ' + a[ key ] );
Попробуйте вышеупомянутое AS3.0 и AS1.0/2.0