2015-09-26 67 views
3

我正在使用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

可以簡化這個問題有點多 –

+0

@ user2320445我想借此「ABC123^456」並將其更改爲「農行(123456)」。我需要它也適用於像「gh1473209^2」這樣的東西,並使它成爲「gh(1473209,2)」 – ei1

回答

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 
} 
+0

這並不完全解答我的問題。即使「^」之前的數字有多個數字,我也需要它。如果我有1 + 10^2 + 3,它會變成1 + 1Mathf.Pow(0,2)+3 – ei1

+0

這確實有幫助。而不是在i-1中插入MathString,我可以重複測試每個字符是否是數字並返回有多少個數字。我可以在插槽中插入MathString我[[以前有多少個連續的數字] ^我仍然無法得到它,但 – ei1

+0

現在檢查我的答案根據您的需要編輯 –