2016-10-17 61 views
2

.NET 4.6.1 C#Java Character.MATH_SYMBOL到C#的轉換

我找到了一個可能的解決方案來解決我遇到的問題。該解決方案是用Java編寫的。我很容易地將它的99%轉換爲C#,不用1行。這是簡介。

它們有一個轉換爲字符數組的字符串。下面是C#相當於:

string pFormula = "my string"; 
    char[] tokens = pFormula.ToCharArray(); 

然後下面的代碼行中出現(這就是Java):

if (Character.getType(tokens[i]) == Character.MATH_SYMBOL){ 
    //do something 
    } 

這是我很堅持。我可以這樣做:

 tokens[i].GetType() //Character.getType(tokens[i]) 

有沒有人知道C#等價於java的Character.MATH_SYMBOL?由於

+0

@SajalDutta這會爲$返回true太多,但是這不是數學符號 – mybirthname

回答

4
char plus = '+'; 

if(char.GetUnicodeCategory(plus) == UnicodeCategory.MathSymbol) 
{ 
    //return true 
} 

您需要使用UnicodeCategory

要知道不是每一個可以在數學中使用的符號是UnicodeCategory.MathSymbol。 *和/是不是MathSybols

char a2 = '*'; 

if(char.GetUnicodeCategory(a2) == UnicodeCategory.OtherPunctuation) 
{ 
    //return true, but return false for Math. 
} 

呢?這裏怎麼看起來像乘法和MathSymbols師使用Unicode字符的一部分。

char multiplication = '×'; 
char division = '÷'; 

這裏,這應該是List of characters in unicode designation Sm(symbol,math)

+0

感謝您的答覆。這是什麼是卓越的speadsheet公式。我們不太喜歡,所以標準+ - * /可能就足夠了。謝謝 – BoundForGlory