我使用Unity和UnityScript中的答案,特别是C#会有所帮助。我使用eval()
制作计算器,我需要使用^
我想采取:
1+2^
并将^
替换为,
,并在Mathf.Pow(
后面插入2
。
即使在" 2"有一个以上的数字。
需要成为:
1+Mathf.Pow(2,
//Mathf.Pow is exponents using 2 parameters
现在,当用户输入3
时,它变为1+Mathf.Pow(2,3
。我已经知道当用户键入非数字时如何添加)
。
答案 0 :(得分:2)
只需替换,插入即可。
function Start ()
{
var s : String = "1+1245^6+3";
var MathString : String = "Mathf.Pow(";
var MathString1 : String = ")";
var strResult : String = "";
var j : int;
s = s.Replace('^', '.');
for( var i=0; i< s.length; i++)
{
if(s[i]=='+' || s[i]=='-' || s[i]=='/')
j=i;
if(s[i]=='.')
{
strResult = s.Insert((i+2), MathString1 );
s= strResult;
print(j);
strResult = s.Insert((j+1), MathString );
}
}
print(strResult);// 1+Mathf.Pow(1245.6)+3
}