2014-07-15 48 views
0

我有一個字符串變量,基本上保存相應的值英文字的形式爲中文如何獲得Unicode字符串中的任何字符的索引

String temp = "'%1'不能輸入步驟'%2'"; 

但是,當我想用​​的IndexOf功能

 if(temp.IndexOf("%1") != -1) 
{ 
} 

即使它包含%1,我沒有得到真正瞭解其閹%1與否的字符串。

所以有什麼問題,由於中國章程或任何其他事情。

請教我怎樣才能得到上述情況下的任何特許指數。

+2

'%'(全角百分比)與'%'(常規百分號)不一樣,所以這可能是一個問題。 –

+1

['%'](http://www.decodeunicode.org/u+FF05)!= ['%'](http://www.decodeunicode.org/u+0025) - 它們是不同的字符 – Sayse

+0

I我無法匹配不同文化中的字符串 –

回答

0

那是因爲%1不等於%1你想在這種情況下,解決辦法做的是選擇的符號串出的你有一個像

var s = "'%1'不能輸入步驟'%2'"; 
var firstFragment = s.Substring(1, 2); // this should select you %1 

,然後做

if(temp.IndexOf(first) != -1){ 

} 
+0

我無法在不同的文化中匹配%字符串。 –

0

評論給出了答案。使用相同的百分比字符,所以不是:

"%1" 

使用:

"%1" 

或者,如果你發現有問題(你的源代碼是一個「差」的代碼頁,或者你害怕代碼是硬時,它包含類似於ASCII字符全角字符)來讀取,使用:

"\uFF051" 

甚至:

"\uFF05" + "1" 

(連接將由C#編譯器完成,在運行時不會進行額外的連接)。


另一種方法可能是Unicode範式

temp = temp.Normalize(NormalizationForm.FormKC); 

這似乎是工程中的「異國情調」百分比焦炭引入通常的ASCII%的焦炭,雖然我不知道,如果該行爲保證,但請參閱Unicode Character 'FULLWIDTH PERCENT SIGN' (U+FF05)上的Decomposition字段。

+0

temp.Normalize不適合我。 我無法在不同的文化中匹配%字符串 –

相關問題