在字符串中的连续数字后面插入字符串?

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-[在 ^ 之前连续有多少个数字] 我仍然无法准确地得到它 现在检查我根据您的需要编辑的答案

以上是关于在字符串中的连续数字后面插入字符串?的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题-008字符串转为整数

leetcode 字符串转整数(atoi)

leetcode 字符串转整数 java实现

简单算法17.字符串转整数(atoi)

8. String to Integer (字符串转整数)

leetcode-字符串转整数(atoi)