-2

重複の可能性:
文字列内の特定の文字の後の文字を削除してから、部分文字列を削除しますか?

次のようなテキストを含む文字列variabelがあります。

"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);

しかし、私はそれが間違っていると思います。

4

13 に答える 13

2
Char Mychar = '.';    
Stringvariabel = Stringvariabel.Split(Mychar).First() + Mychar.toString();
于 2012-10-31T13:43:08.960 に答える
1

あなたは以下のようなことをすることができます

stringVariable.Split('.')[0]

また

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

お役に立てれば!!

于 2012-10-31T13:44:45.190 に答える
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]

于 2012-10-31T13:44:58.073 に答える
1

最初の文だけに関心がある場合は、最初から「。」で終わる部分文字列を取得します。

Stringvariabel.Substring(0, Stringvariabel.IndexOf('.') + 1);
于 2012-10-31T13:45:22.560 に答える
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());
于 2012-10-31T13:43:06.580 に答える
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);
于 2012-10-31T13:43:16.590 に答える
1

便利な方法の1つはstring.Split、最初の部分だけを使用して要求することです。

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

これは、最初のドットの後に文字列の処理を続行しないため非常に効率的ですが、ドットが削除され(存在する場合)、最初にドットがあったかどうかを判断できなくなります。

もう1つのオプションはstring.IndexOf、条件付きです。

var index = input.IndexOf(".");
if (index != -1) {
    input = input.SubString(0, index);
}
于 2012-10-31T13:43:25.430 に答える
1

TrimStart指定したリストにある文字列の先頭から文字を削除します。.最初に表示された場合にのみ削除されます。

あなたは最初のものを見つけて、.その時点までの部分文字列を取ることができます:

stringVar.Substring(0, stringVar.IndexOf('.') + 1);
于 2012-10-31T13:44:18.890 に答える
0

分割せずに、andのみを使用SubstringIndexOfます(テキストが非常に大きい場合はより効率的です):

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

http://ideone.com/HL6GwN

于 2012-10-31T13:45:59.923 に答える
0

String.Splitメソッドを見てください。

var myString = "Hello My name is B and I love soccer. I live in California. ";
var firstPart = myString.Split('.')[0];
于 2012-10-31T13:43:25.010 に答える
0
var splitLine = yourString.Split('.');
if (splitLine != null && splitLine.Count > 0)
  return splitLine[0];
于 2012-10-31T13:43:28.253 に答える
0
variablename.Substring(0, variablename.IndexOf('.') + 1);
于 2012-10-31T13:44:16.537 に答える
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;
于 2012-10-31T13:48:08.633 に答える