在字符串中的连续数字后面插入字符串?
Posted
技术标签:
【中文标题】在字符串中的连续数字后面插入字符串?【英文标题】:Insert string behind consecutive numbers in string? 【发布时间】:2015-12-23 22:07:02 【问题描述】:我正在使用 Unity,尤其是 UnityScript 中的答案或 C# 会有所帮助。我正在使用eval()
制作计算器,我需要使用^
的指数
我要服用:
1+2^
并将^
替换为,
并在2
后面插入Mathf.Pow(
。
即使“2”的位数超过一位,我也需要它来工作。
它需要变成:
1+Mathf.Pow(2,
//Mathf.Pow is exponents using 2 parameters
现在,当用户键入3
时,它变为1+Mathf.Pow(2,3
。我已经知道如何在用户输入非数字时添加)
。
【问题讨论】:
你能把问题简化一点吗 @user2320445 我想把“abc123^456”改成“abc(123,456)”。我需要它也适用于“gh1473209^2”之类的东西并使其成为“gh(1473209,2)” 【参考方案1】:只需替换和插入就足够了。
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
【讨论】:
这并不能完全回答我的问题。即使“^”之前的数字超过一位,我也需要它工作。如果我有 1+10^2+3 它会变成 1+1Mathf.Pow(0,2)+3 这确实有帮助。我可以重复测试每个字符是否为数字并返回有多少个数字,而不是将 MathString 插入 i-1。我可以将 MathString 插入插槽 i-[在 ^ 之前连续有多少个数字] 我仍然无法准确地得到它 现在检查我根据您的需要编辑的答案以上是关于在字符串中的连续数字后面插入字符串?的主要内容,如果未能解决你的问题,请参考以下文章