2014-05-22 17 views
0

嗨,大家好,我找不到爲什麼我的代碼不工作,任何幫助將非常感激!從字符串C#中刪除空格(簡單!)

我有一個給定的字符串充斥着每個號碼我把空格去掉,這樣我得到相互粘結的所有號碼之間的數字和空間..

string nums = "1 2 3 4 5"; 
    for (int i = 0; i < nums.Length; i++) 
    { 
     if (nums[i].ToString() == " ") 
     { 
      nums[i].ToString() = ""; 
     } 
    } 

我也使用.Replace嘗試( 「」,「」);但再次沒有成功,我無法弄清楚我在哪裏做錯了。我需要一個簡單的,初學者友好的解決方案!

+1

字符串是不可變 –

+1

我不明白爲什麼'VAR newString = nums.Replace(」」, 「」)'不工作?那是什麼問題? –

+0

。更換應該有效。嘗試單引號而不是雙引號。 – SQLMason

回答

5

.NET中的字符串是不可變的。撥打nums[i].ToString()會爲您提供一個新字符串,但不會修改nums

Replace是要走的路,但你必須分配結果返回給nums

string nums = "1 2 3 4 5"; 

nums = nums.Replace(" ", ""); 

這是必要的,因爲Replace不會修改源字符串。它會返回新的。

+0

謝謝,這工作!我的替換問題顯然是我再次將它分配給nums!愚蠢的我xD我一整天都在做家庭作業,我的大腦被炸了,再次感謝! – Darkbound

0

您正在分配給函數調用(ToString())的輸出,這是錯誤的。使用String.Replace替換字符串中的字符。

1

此方法將刪除字符串中的空格。它所做的是遍歷每個字符,然後將其與UTF-16值進行比較以獲得空間。如果它是一個空間,它不會添加它。

public String RemoveSpaces(String withSpaces){ 
    StringBuilder sb = new StringBuilder(); 

    for (int i = 0; i < withSpaces.Length; i++) 
    { 
     if (withSpaces[i] != 32) 
     { 
      sb.Append(withSpaces[i]); 
     } 
    } 

    return sb.ToString(); 
} 
+0

那麼,你的代碼肯定會做它正在做的事情,當然,以一種更加創造性的方式,而不僅僅是使用枯燥的'string.Replace(「,string.Empty)'') – elgonzo

+0

哈哈好的,是的,我承認有更簡單的方法。但誰想要一個簡單的簡潔的字符串。替換? –

+0

敢於夢想@elgonzo ....敢於夢想.... –