by jgk-ps at 2013-01-15 10:12:18

Hi guysby nohandle at 2013-01-15 10:30:23

Im having some issues working with strings, namely i have a list of 8 digit numbers (about 7389 of them) and i need to either remove or replace the 3rd digit and i have no idea how to go about doing this.

for example i have a string like this: 99068003 and i need to get rid of the first zero and change it to 9968003.

every number string i have is exactly 8 digits, however they are not in sequence, i cannot assume that the 3rd digit is always the same, or that it is always preceded by the same digit. its basically just a huge pile of seemingly random 8 digits numbers

any takers?

by jgk-ps at 2013-01-15 10:44:06`99068003,99068003 |`

foreach {

$asString = [string]$_

$position = 3 -1

$count = 1

#remove the third character and cast it back to number

[int]($asString.Remove($position,$count))

}

The function is not safe in manner it does not validate its input, and hence you can get error while casting back to integer.

Do you do math on the numbers? If no, handling them as string the whole time is probably better idea.

There is probably mathematical solution to the problem but it requires thinking

thanks, it worked exactly as i hoped it wouldby jgk-ps at 2013-01-15 10:47:29

quick questionby nohandle at 2013-01-15 10:58:37

how come the $position variable is 3 -1 instead of just 2?

To avoind magic numbers. You asked for removal of the third number, the string is indexed from zero. 3-1 is more descriptive than 2 .