C#中的VB6字符串函数

时间:2013-07-04 06:40:22

标签: c# string vb6

If Left(strText, 3) = "De " Then
    Mid(strText, 1, 1) = "d"
ElseIf Left(strText, 4) = "Van " Then
    Mid(strText, 1, 1) = "v"
End If

以上VB代码需要翻译成C#。

我知道中间和左边都是

strText.Substring(1,1) and strText.Substring(0, 4)

但如果我做不到

strText.Substring(1,1) = "v";

我需要做..

strText.Replace(strText.Substring(1,1), "v"))

代替?

VB6代码中没有评论。所以我只想猜测这里发生了什么。

编辑:抱歉错误的代码版本

2 个答案:

答案 0 :(得分:2)

第一个代码块测试字符串是否以字符Van开头,如果是,则用v替换第一个字符。

所以最简单的替换是:

if(strText.StartsWith("De ")) {
   strText = "d" + strText.Substring(1);
}else if(strText.StartsWith("Van ")) {
   strText = "v" + strText.Substring(1);
}

答案 1 :(得分:1)

strText = "v" + strText.Substring(1)

请注意,数组索引从0开始。我假设您正在尝试将“v”放在字符串中的第1个字符位置(即0)。

编辑:请注意,与VB6示例相比,.net中的字符串是不可变的(即字符串的内容无法就地修改),您可以使用MidLeft来设置指定字符位置的值。

以下内容将返回一个包含已修改内容的新字符串,该字符串应返回strText,以便您覆盖原始内容。

strText.Replace(strText.Substring(1,1), "v"))

此外,由于有两件事,这不是一个好方法 1)如果strText是“van”,`strText.Substring(1,1)将返回“a”

2)strText.Replace(strText.Substring(1,1), "v"))将取代所有“a”,而不仅仅是第一个。