2012-10-31 33 views
-2

可能重複:
Remove characters after specific character in string, then remove substring?'。'時在字符串上剪切文本。在文中找到

我有一個包含這樣的文本字符串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); 

但我想這是錯誤的。

+0

@Oliver:您可以限制數組的長度(請參閱答案)。 – Jon

+0

其實,這個副本不是太好,因爲它也刪除了點。 – Kobi

+0

這使得它完全不同:)然後又出現了另一個問題:*「如何將點追加到C#中的字符串」* –

回答

1

如果您只對第一句話感興趣,那麼只需抓住一個從開頭開始到'。'結束的子字符串。 )

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

http://ideone.com/HL6GwN

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()); 
+0

@downvoter:關心評論? –

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

這將刪除'.'。 – Joey

+0

@downvoter:關心評論? – Aelios

+1

我沒有downvote,但'string.Concat'不適用於字符串和字符。 – Joey

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

看看在String.Split方法。

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

這將刪除'.'。 – Joey

1

一個方便的方法是使用string.Split,並要求僅僅是第一部分:

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

這是非常有效的,因爲它不會延續前點後處理字符串,但它會刪除點(如果存在),並且您將無法判斷是否有點。

另一種選擇是string.IndexOf和條件:

var index = input.IndexOf("."); 
if (index != -1) { 
    input = input.SubString(0, index); 
} 
0
var splitLine = yourString.Split('.'); 
if (splitLine != null && splitLine.Count > 0) 
    return splitLine[0]; 
+0

如果碰巧沒有「。」,這將不起作用。 – MethodMan

+0

這將刪除'.'。 – Joey

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

這將刪除'.'。 – Joey

+0

你可以簡單的加1加索引 –

+0

我調整了我的代碼 –

1

TrimStart從一個字符串,它是你給它的列表的開始刪除字符。如果它在一開始出現,它只會刪除.

您可以找到第一.,並採取子到這一點:

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

你可以做類似下面

stringVariable.Split('.')[0] 

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

希望這有助於!

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]

0

沒有分裂,只有使用SubstringIndexOf(這是更有效的當文本是非常大)會產生影響,因爲您創建了一個數組,其中包含由給定分隔符分隔的所有子字符串,但您只對第一個事件感興趣。所以使用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; 
0

請注意,String.Split(可以:

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