中首次出現我有這個字符串:替換字符串
Hello my name is Marco
,我想用<br />
取代(間Hello
和my
)第一空間。只有第一個。
在C#/ .NET 3.5上執行它的最佳方法是什麼?
中首次出現我有這個字符串:替換字符串
Hello my name is Marco
,我想用<br />
取代(間Hello
和my
)第一空間。只有第一個。
在C#/ .NET 3.5上執行它的最佳方法是什麼?
無需添加子,下面將只找到第一個空間實例。 從MSDN:
報告在這種情況下指定 字符串中首次出現的從零開始的索引。
string x = "Hello my name is Marco";
int index = x.IndexOf(" ");
x= index >=0 ? x.Insert(index, @"<br />") : x;
編輯:如果你不知道會發生空間,一些驗證必須進入的地方。我已經編輯了相應的答案。
string tmp = "Hello my name is Marco";
int index = tmp.IndexOf(" ");
tmp = tmp.Substring(0, index) + "<br />" + tmp.Substring(index + 1);
string[] str = "Hello my name is Marco".Split(' ');
string newstr = str[0] + "<br /> " + string.Join(" ", str.Skip(1).ToArray());
在這裏你去,這會工作:
var s = "Hello my name is Marco";
var firstSpace = s.IndexOf(" ");
var replaced = s.Substring(0,firstSpace) + "<br/>" + s.Substring(firstSpace+1);
你可以做成一個擴展方法如下:
public static string ReplaceFirst(this string input, string find, string replace){
var first= s.IndexOf(find);
return s.Substring(0,first) + replace + s.Substring(first+find.Length);
}
然後使用將
var s = "Hello my name is Marco";
var replaced = s.ReplaceFirst(" ","<br/>");
public static class MyExtensions
{
public static string ReplaceFirstOccurrance(this string original, string oldValue, string newValue)
{
if (String.IsNullOrEmpty(original))
return String.Empty;
if (String.IsNullOrEmpty(oldValue))
return original;
if (String.IsNullOrEmpty(newValue))
newValue = String.Empty;
int loc = original.IndexOf(oldValue);
return original.Remove(loc, oldValue.Length).Insert(loc, newValue);
}
}
,並用它喜歡:
string str="Hello my name is Marco";
str.ReplaceFirstOccurrance("Hello", "<br/>");
str.ReplaceFirstOccurrance("my", "<br/>");
你應該給它一個自己去。這是可以很好解決的情況。 – ThePower 2012-04-27 12:41:38
可能的重複[如何替換.NET中的字符串*的第一個實例?](http://stackoverflow.com/questions/141045/how-do-i-replace-the-first-instance-of -a-string-in-net) – 2012-04-28 02:27:56