2015-05-27 2 views
-3

Если у меня есть строка с некоторым числом, какзаменить символ со звездой на определенной позиции внутри строки

var nr = "00011122233345721"; 

как я могу заменить восьмой и последний элемент внутри строки с * поэтому строка стала 0001112*23334572*

+0

Использование просто '[]' оператор. string является массивом 'char' – Tigran

+2

https://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.110%29.aspx –

+1

@Tigran: Это не сработает. индексатор для 'string' доступен только для чтения –

ответ

2

как строка неизменна в C#, попробуйте следующие:

char[] array = nr.ToCharArray(); 
array[7] = "*"; 
array[array.Length-1] = "*" 
nr = new string(array); 
+3

Это прочный подход, хотя, конечно, d хочу проверить строку достаточно долго (и использовать '.Length' не' .length') –

+0

Спасибо @KierenJohnstone – gypsyCoder

-1

Я думаю, что это дубликат: stuff function implementation in c#

Одним словом, вы не можете изменять содержимое строки в .NET, потому что это неизменный объект. Вам нужно создать новую строку.

+2

Это комментарий, а не ответ –

1

Применение

 var nr1 = "00011122233345721"; 
     var array = nr1.ToCharArray(); 
     array[7] = '*'; 
     array[nr1.Length-1] = '*'; 
     nr1 = new string(array); 

ИЛИ

 var nr = "00011122233345721"; 
     nr = nr.Insert(nr.Length - 1, "*"); 
     nr = nr.Remove(nr.Length-1); 
     nr = nr.Insert(7, "*"); 
     nr = nr.Remove(8,1); 
Смежные вопросы