2012-07-18 60 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