'。'时剪切字符串上的文字。在文中找到

时间:2012-10-31 13:41:10

标签: c# string

  

可能重复:
  Remove characters after specific character in string, then remove substring?

我有一个包含如下文本的字符串变量:

"Hello My name is B and I love soccer. I live in California."

我想在第一个'。'之后剪切文字。所以文字显示

"Hello My name is B and I love soccer."

我怎样才能以最简单的方式做到这一点?

我试过了:

Char Mychar = '.';

Stringvariabel.trimstart(Mychar);

但我猜这是错的。

13 个答案:

答案 0 :(得分:2)

Char Mychar = '.';    
Stringvariabel = Stringvariabel.Split(Mychar).First() + Mychar.toString();

答案 1 :(得分:1)

您可以使用string.Split来获得结果:

string input = "Hello My name is B and I love soccer. I live in California. ";
string result = string.Format("{0}.", input.Split('.').First());

答案 2 :(得分:1)

利用IndexOf功能将为你工作..

string input = "Hello My name is B and I love soccer. I live in California. ";
int i = input .IndexOf('.');
string result = s.Substring(0,i+1);

答案 3 :(得分:1)

一种方便的方法是使用string.Split并仅询问第一部分:

var firstPart = input.Split(new[] { '.' }, 1).First();

这非常有效,因为它不会在第一个点之后继续处理字符串,但它会删除点(如果它存在)并且您将无法判断是否首先存在点。

另一个选项是string.IndexOf和条件:

var index = input.IndexOf(".");
if (index != -1) {
    input = input.SubString(0, index);
}

答案 4 :(得分:1)

TrimStart从您提供的列表中的字符串开头删除字符。如果它出现在最开始,它只会删除.

您可以找到第一个.并获取到该点的子字符串:

stringVar.Substring(0, stringVar.IndexOf('.') + 1);

答案 5 :(得分:1)

您可以执行以下操作

stringVariable.Split('.')[0]

stringVariable.SubString(0, stringVariable.IndexOf(".") + 1)

希望这有助于!!

答案 6 :(得分:1)

最简单的方法是将子字符串放到第一次出现的字符之前。

public string TrimAtFirstChar(string s, char c)
{
    int index = s.IndexOf(c);
    if(index == -1) //there is no '.' in the string
        return s;
    return s.Substring(0, index)
}

或者,为避免担心没有'。'的情况,您可以使用stringvariable.Split('.')[0]

答案 7 :(得分:1)

如果你只对第一句话感兴趣,那么只需从开始处开始并在'。'处结束一个子字符串。

Stringvariabel.Substring(0, Stringvariabel.IndexOf('.') + 1);

答案 8 :(得分:0)

查看String.Split方法。

var myString = "Hello My name is B and I love soccer. I live in California. ";
var firstPart = myString.Split('.')[0];

答案 9 :(得分:0)

var splitLine = yourString.Split('.');
if (splitLine != null && splitLine.Count > 0)
  return splitLine[0];

答案 10 :(得分:0)

variablename.Substring(0, variablename.IndexOf('.') + 1);

答案 11 :(得分:0)

没有拆分,只使用SubstringIndexOf(当文字非常大时效率更高):

int index = text.IndexOf(".") + 1;
String result = text;
if(index > 0)
    result = text.Substring(0, index);

http://ideone.com/HL6GwN

答案 12 :(得分:0)

请注意,String.Split()可能会产生影响,因为您创建的数组包含由给定分隔符分隔的所有子字符串,但您只对第一次出现感兴趣。所以使用IndexOf()和Substring()会更有意义。

string input = "Hello My name is B and I love soccer. I live in California. ";
var index = input.IndexOf(".");

var result = index > 0
              ? input.Substring(0, index)
              : input;