2012-07-18 87 views
0

我對以下內容有疑問。更換部分字符串

在VB.Net,我有以下行:

Dim intWidgetID As Integer = CType(Replace(strWidget, "portlet_", ""), Integer)

其中strWidget = portlet_n

其中n可以是任意整數,即

portlet_5

我試圖將此代碼轉換爲C#,但我不斷收到錯誤,目前,我有這樣的:

intTabID = Convert.ToInt32(Strings.Replace(strTabID, "tab_group_", ""));

,我得到了使用在線轉換器

但它不喜歡Strings

所以我的問題是,如何我替換字符串的一部分,所以intTabID根據這個例子變成5

我做這個搜索,發現此鏈接: C# Replace part of a string

可這不是沒有在C#中的正則表達式來完成,所以基本上,我試圖產生代碼儘可能地相似原始的vb.net示例代碼。

回答

2

它應該是這樣的strTabID.Replace("tab_group_", string.Empty);

int intTabID = 0; 
    string value = strTabID.Replace("tab_group_", string.Empty); 
    int.TryParse(value, out intTabID); 

    if (intTabID > 0) 
    { 

    } 

而在你的代碼中,我認爲你需要將「tab_group_」替換爲「portlet_」

0

而不是Strings.Replace(strTabID, "tab_group_", ""),請使用strTabID.Replace("tab_group_", "")

+1

我現在收到以下錯誤消息'編譯器錯誤信息:CS1501:沒有重載方法「替換」需要「3」 arguments'。 – oshirowanen 2012-07-18 11:37:18

+0

是的,對不起,我的回答太快了:您使用'strings'而不是'string',但方法也不同:它是一種實例方法。看我的編輯。 – 2012-07-18 11:38:26

0

他們是在Vb.Net沒有絃樂類,所以請使用String類代替http://msdn.microsoft.com/en-us/library/aa903372(v=vs.71).aspx

您可以通過這種方式實現它

string strWidget = "portlet_n"; 

int intWidgetID = Convert.ToInt32(strWidget.Split('_')[1]); 
+0

我現在收到以下錯誤消息:編譯器錯誤消息:CS1501:方法'替換'沒有超載需要'3'參數。 – oshirowanen 2012-07-18 11:38:53

+0

@oshirowanen請參閱另一種實現它的方式 – HatSoft 2012-07-18 12:16:18

0

這應該工作

int intWidgetID = int.Parse(strTabID.Replace("tab_group_",""));//Can also use TryParse