Using String.Trim() and String.TrimEnd()

本文关键字:String TrimEnd and Trim Using | 更新日期: 2023-09-27 18:12:51

我正在实现一个启发式方法,用于将名称拆分为相关字段(我知道将它们分开接收会更容易,但我没有)。我需要去掉所有的。’字符,然后在字符串中有空格的地方进行分割。

为什么不删除'。例如John Doe先生

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

谢谢

Using String.Trim() and String.TrimEnd()

您的TrimEnd调用将只删除在字符串的结尾处找到的.字符。

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

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

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

TrimEnd从当前String对象中删除数组中指定的一组字符的所有尾部出现。

试题:

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

Trim只删除字符串两端的字符。你需要像

一样使用Replace
nameInFull = nameInFull.Replace(".", "");

如果您想删除所有的'。

使用string. replace()方法
public void SplitNamesAndRemovePeriods()
    {
        nameInFull = nameInFull.Replace(".", "");
        string[] allNames = nameInFull.Split(' ');
        PrintNames();
    }

TrimEnd只删除存在于字符串末尾的指定字符。

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

如果您想替换'。’,例如:' ',然后使用Replace代替Remove。