2016-10-17 24 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]) 

誰でもJavaのCharacter.MATH_SYMBOLのC#の同等のものを知ってい:私はこれを行うことができますか?おかげ

+0

@SajalDuttaである必要があり、これはあまりにも$のためにtrueを返しますが、これは、応答のための – mybirthname

答えて

4
char plus = '+'; 

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

あなたがUnicodeCategory

は数学で使用することができないすべてのシンボルがUnicodeCategory.MathSymbolである点に注意してください使用する必要があります。 *および/は、ここではMathSymbolsで使用される乗算と除算のためのUnicode文字どのように見えるかMathSybols

char a2 = '*'; 

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

の一部ではありません。ここで

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

これはList of characters in unicode designation Sm(symbol,math)

+0

おかげで数学の記号ではありません。これは、speadsheetの式に優れています。私たちはあまりにも上品ではないので、標準+ - * /で十分かもしれません。ありがとう – BoundForGlory