我有一個字符數組。我想刪除數組中某個位置的元素。刪除字符數組中的字母
可以說我有這個字符數組:OVERFLOW
我想從上面的數組中刪除R和調整字符數組這樣的話是: OVEFLOW
我想能夠在某個位置添加一個新的字母給數組。可以說我想添加字母T,所以這個詞會像:OVETFLOW
我不只是想要替換兩個字母。我想先完全刪除,然後在不同的位置添加該字母。
我試圖解決用於字符串數組的Remove()
方法的問題。但我還沒有弄清楚哪種方式是解決問題的最佳方法。
我有一個字符數組。我想刪除數組中某個位置的元素。刪除字符數組中的字母
可以說我有這個字符數組:OVERFLOW
我想從上面的數組中刪除R和調整字符數組這樣的話是: OVEFLOW
我想能夠在某個位置添加一個新的字母給數組。可以說我想添加字母T,所以這個詞會像:OVETFLOW
我不只是想要替換兩個字母。我想先完全刪除,然後在不同的位置添加該字母。
我試圖解決用於字符串數組的Remove()
方法的問題。但我還沒有弄清楚哪種方式是解決問題的最佳方法。
var theString = "OVERFLOW";
var aStringBuilder = new StringBuilder(theString);
aStringBuilder.Remove(3, 1);
aStringBuilder.Insert(3, "T");
theString = aStringBuilder.ToString();
試試這個:
char[] myCharArray = new char[] { 'O', 'V', 'E', 'R', 'F', 'F', 'L', 'O', 'W' };
string str = new string(myCharArray);
int index = str.IndexOf('R');
str=str.Remove(index,1);
str=str.Insert(index, "Z");
myCharArray = str.ToCharArray();
我不想替換兩個字母。我想徹底刪除一個字母,然後在另一個位置添加另一個字母。 – EM10
檢查我的編輯.... –
的另一種方法:
string str = "OVERFLOW";
var arr=str.ToList();
arr.Remove('F');
arr.Insert(3, 'T');
str =new string(arr.ToArray());
作爲一個簡單的例子:
string str = "OWERFLOW";
char[] array = str.ToCharArray();
char[] array2 = RemveFromArray(array, 'R');
char[] array3 = InsertIntoArray(array2, 'T', 3);
char[] array4 = RemveFromArrayAt(array, 3);
static char[] RemveFromArray(char[] source, char value)
{
if (source == null)
return null;
char[] result = new char[source.Length];
int resultIdx = 0;
for (int ii = 0; ii < source.Length; ii++)
{
if(source[ii] != value)
result[resultIdx++] = source[ii];
}
return result.Take(resultIdx).ToArray();
}
static char[] InsertIntoArray(char[] source, char value, int insertAt)
{
if (source == null || insertAt > source.Length)
return null;
char[] result = new char[source.Length + 1];
Array.Copy(source, result, insertAt);
result[insertAt] = value;
Array.Copy(source, insertAt, result, insertAt + 1, source.Length - insertAt);
return result;
}
static char[] RemveFromArrayAt(char[] source, int removeAt)
{
if (source == null || removeAt > source.Length)
return null;
char[] result = new char[source.Length - 1];
Array.Copy(source, result, removeAt);
Array.Copy(source, removeAt + 1, result, removeAt, source.Length - removeAt - 1);
return result;
}
你想刪除當前字母或從當前位置?如果陣列中有兩個字母「R」會怎麼樣? –
將char數組轉換爲字符串,執行操作,然後轉換回char數組。 –
數組有固定大小。您無法從陣列中移除項目。您可以替換其值,或創建不同大小的新陣列。 – MarcinJuraszek