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代码中没有评论。所以我只想猜测这里发生了什么。
编辑:抱歉错误的代码版本
答案 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中的字符串是不可变的(即字符串的内容无法就地修改),您可以使用Mid
或Left
来设置指定字符位置的值。
以下内容将返回一个包含已修改内容的新字符串,该字符串应返回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”,而不仅仅是第一个。