C# 基于最佳实践的字符串连接
我有一根绳子C# 基于最佳实践的字符串连接,c#,C#,我有一根绳子 string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdia
string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"
现在我只需要将第一个“alwaysSame09102012”改为“Always2013永远”
我知道我可以做这样的事
string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"
string[] c = ij.split['/'];
string finalString = ij.replace( "/" + c[0] + "/", "/" + "always2013forever" + "/");
这是我的逻辑,但不起作用,请帮忙
字符串中唯一的常量是我需要替换的“/alwaysSame09102012/”
更新
**
- 如果我在查询字符串的at中得到了这个“alwaysSame09102012”怎么办, 这就是为什么我不想使用replace
**您应该使用URI类
这将为您提供更大的灵活性,并防止您逃避问题等。您应该使用URI类 这将为您提供更大的灵活性,并防止您逃避问题等。使用 例: 您的答案不起作用的原因是
c[0]
将是“
”。您要查找的值(例如“alwaysSame09102012”)将位于c[1]
使用中
string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"
string newString = ij.Replace("alwaysSame09102012","always2013forever");
例:
您的答案不起作用的原因是
c[0]
将是“
”。您要查找的值(例如“alwaysSame09102012”)将位于c[1]
关于string finalString=ij.Replace(“alwaysSame09102012”、“Always2013永远”)
?字符串有什么问题。替换,或者你不知道吗?但是不起作用——你还应该包括预期和实际的输出。如果字符串是常量,你为什么要费尽心机拆分字符串以得到c[0]?谢谢,但我可以在查询字符串中使用“alwaysSame09102012”两次,我如何确保它是我需要更换的第一个。此外,如果我没有正确编程,它也是银行软件。ATM机将无法正常工作,您将得到更少的钱。关于string finalString=ij.Replace(“alwaysSame09102012”,“Always2013永远”)
?字符串有什么问题。替换,或者你不知道吗?但是不起作用——你还应该包括预期和实际的输出。如果字符串是常量,你为什么要费尽心机拆分字符串以得到c[0]?谢谢,但我可以在查询字符串中使用“alwaysSame09102012”两次,我如何确保它是我需要更换的第一个。还有银行软件,如果我没有正确编程,ATM机将无法正常工作,你将得到更少的钱。谢谢,但如果我总是两次收到SSAME09102012,该怎么办检查这个问题的公认答案(基本上就是你需要的!):这里,这就是你想要的:谢谢,但是如果我在stringCheck中得到两次SAME09102012怎么办?检查这个问题的公认答案(这基本上就是你需要的!):这里,这就是你想要的:
string ij = "/alwaysSame09102012/myThing.aspx?asdasd=99&Urasdl=scashdasdeasdmeasds/tasdigaesdr1/gasdoasdveasdasdrnaasdancasde/eamsdeasdetiasdasdnagsds/tasidgeasdr1masdeetasdasd11180,/reasdMeasdetMe2as0d1asd0/asrdganasdiseasdasdgeasdetasdiasdngaasdsd.aasdspafsxasdffas?asdsdlaieasdnedtfe=asdsafaser1meafswedfhfdget111ertert80"
string newString = ij.Replace("alwaysSame09102012","always2013forever");
string ReplaceFirst (string source, string old_substring, string new_substring)
{
var position = source.IndexOf(old_substring);
return (position < 0)
? source
: source.Substring(0, position) + new_substring + source.Substring(position + old_substring.Length);
}
var new_string = ReplaceFirst("/alwaysSame09102012/myThing...", "alwaysSame09102012","always2013forever");