【问题标题】:Replace part of string替换部分字符串
【发布时间】:2012-07-17 10:18:10
【问题描述】:

我在以下方面遇到困难。

在 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 示例代码尽可能相似的代码。

【问题讨论】:

    标签: asp.net .net vb.net .net-3.5 c#-3.0


    【解决方案1】:

    它们在 Vb.Net 中没有 Strings 类,因此请改用字符串类http://msdn.microsoft.com/en-us/library/aa903372(v=vs.71).aspx

    你可以通过这种方式实现它

    string strWidget = "portlet_n";
    
    int intWidgetID  = Convert.ToInt32(strWidget.Split('_')[1]);
    

    【讨论】:

    • 我现在收到以下错误消息Compiler Error Message: CS1501: No overload for method 'Replace' takes '3' arguments
    • @oshirowanen 请看另一种实现方式
    【解决方案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_”

    【讨论】:

      【解决方案3】:

      这应该可以工作

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

      【讨论】:

        【解决方案4】:

        strTabID.Replace("tab_group_", "")代替Strings.Replace(strTabID, "tab_group_", "")

        【讨论】:

        • 我现在收到以下错误消息Compiler Error Message: CS1501: No overload for method 'Replace' takes '3' arguments
        • 是的,抱歉,我的回答太快了:您使用的是strings 而不是string,但方法也不同:它是一个实例方法。查看我的编辑。
        猜你喜欢
        • 2013-06-19
        • 2021-03-25
        • 1970-01-01
        • 2016-09-22
        • 2020-11-21
        • 2011-09-04
        • 2021-03-01
        • 2015-04-17
        相关资源
        最近更新 更多