2011-11-01 36 views
0

我正在实施一种启发式方法将名称分割成相关字段(我知道将它们分开但我不会更容易)。我需要删除所有的'。'首先在字符串中的字符,然后在字符串中有空格的地方进行拆分。使用String.Trim()和String.TrimEnd()

为什么不能删除'。'在例如李四先生

public void SplitNamesAndRemovePeriods() 
{ 
    char[] period = {'.'}; 
    nameInFull = nameInFull.TrimEnd(period); 
    string[] allNames = nameInFull.Split(' '); 
    PrintNames(); 
} 

感谢

+1

_“为什么这不起作用?”没有人知道。显示“之前”和“之后”以及您遇到的任何错误。 “不起作用”不是错误。 – CodeCaster

+0

您是否需要删除所有'。'字符,或只有'。'在字符串的结尾? – Svarog

+0

“不工作”是什么意思?谨慎解释? –

回答

1

TrimEnd从当前String对象中删除在数组中指定的一组字符的所有跟踪事件。

尝试:

public void SplitNamesAndRemovePeriods() 
{ 
    nameInFull = nameInFull.Replace(".", String.Empty); 
    string[] allNames = nameInFull.Split(' '); 
    PrintNames(); 
} 
1

修剪只从字符串的两端删除字符。 您需要使用替换像

nameInFull = nameInFull.Replace(".", ""); 
1

TrimEnd的通话将只删除在字符串的结束发现字符.

如果你想整个字符串中删除所有字符.,那么你应该使用Replace代替:

nameInFull = nameInFull.Replace(".", ""); 

请注意,如果您的源字符串格式不正确更换这样可能会影响后续的拆分操作。例如,如果原始字符串是“Mr.Foo.Bar”,那么替换操作的输出将是“MrFooBar”,没有空间可以分开。为了避免这种情况,你可以考虑用空格而不是空字符串替换。

1

如果要删除所有的 ''在字符串中的字符,你最好使用与string.replace()方法:

public void SplitNamesAndRemovePeriods() 
    { 
     nameInFull = nameInFull.Replace(".", ""); 
     string[] allNames = nameInFull.Split(' '); 
     PrintNames(); 
    } 
0

TrimEnd只有当它存在于字符串的结尾删除指定的字符。

您可能想要使用IndexOf('。')并将结果传递给Remove。 在循环中执行此操作,直到IndexOf失败。

如果您想更换'。'与另一个字符,例如'',然后使用Replace而不是Remove。