2016-06-23 11 views
0

Ich bin auf der Suche nach den ersten beiden Elemente in einem Array bis zum Ende zu verschieben.Verschieben von Elementen in einem Array

Zum Beispiel möchte ich einfach 160210 zu 021016 werden.

Ist dies in Powershell möglich?

Dank

+0

[Konvertieren das Array in eine Liste] (http://stackoverflow.com/a/ 618675/3195526), ​​entfernen Sie die Elemente, fügen Sie sie zum Ende hinzu, konvertieren Sie sie zurück in ein Array. –

+0

Ist '160210' ein String oder ist es ein Array' 1,6,0,2,1,0'? –

+0

Es ist eigentlich eine Zeichenfolge, aber ich würde zuerst in Array konvertieren, so dass ich die einzelnen Zeichen steuern kann – Quanda

Antwort

1

aus einem Array von Objekten starten, die Array-Slice-Notation $array[a..b] kann dies für Sie tun. Verketten Sie einfach zwei Scheiben des Arrays - eine von Element 2 bis zum Ende und eine, die nur die ersten beiden Elemente enthält.

$array = 1,6,0,2,1,0 
$newarray = $array[2..$array.length] + $array[0,1] 

Wenn Sie aus einer Zeichenfolge beginnen, ist eine weitere Option Regex zu verwenden und die Powershell -replace Operator.

$string = "160210" 
$newstring = $string -replace '(..)(.*)','$2$1' 

Oder einfach die .NET String Substring() Methode verwenden.

$newstring = $string.Substring(2) + $string.Substring(0, 2) 
1

Sie können den Inhalt des Arrays 3 Variablen zuweisen und sie mischen um etwa so:

$array = 1,6,0,2,1,0 
$first,$second,$rest = $array 
$array = $rest + $first + $second 
Verwandte Themen