从第一个点之前的第一个字母截断字符串



我有一个字符串列表。它们看起来像:this.is.the.first.onethat.is.the.secondthishasnopoint他们中的一些人有积分,但有些人没有积分。我只需要使用c#从可能的第一个点之前的第一个字母截断字符串。截断的字符串应如下所示:thisthatthishasnopoint谷歌搜索没有给我任何有用的线索。

简单的方法是:

string firstBit = wholeString.Split('.')[0];

Split将其转换为字符串数组,以'.'字符分隔。在thishasnopoint的情况下,数组只有一个元素。

现在我明白了,字符串只是其中一个序列。。。这样就可以了:

var result = strings.Split('.').First();

如果字符串是:this.is.the.first.one that.is.the.second thishasnopoint-一个字符串this:

var firstWords = new List<string>();
strings.Split(' ').ForEach(x => firstWords.Add(x.Split('.').First()));

将返回:

带三个字符串的List<string>-this that thishasnopoint

string getTruncated(string s) {
    int startIdx = -1;
    for (int i = 0; i < s.Length; ++i) {
        if (Char.IsLetter(s[i])) {
            startIdx = i;
            break;
        }
    }
    int endIdx = s.IndexOf('.');
    if (startIdx != -1) {
        if (endIdx != -1) {
            return s.Substring(startIdx, endIdx);
        } else {
            return s.Substring(startIdx);
        }
    } else {
        throw new ArgumentException();
    }
}

工作速度比"拆分"方法更快,但它更复杂。

相关内容

  • 没有找到相关文章

最新更新