Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于最佳实践的字符串连接_C# - Fatal编程技术网

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");