gpt4 book ai didi

c# - 将指数数字符串表示形式拆分为幂和指数

转载 作者:行者123 更新时间:2023-11-30 20:19:41 24 4
gpt4 key购买 nike

我有来自资源的字符串,呈指数形式,如下所示:2⁴。我想知道是否有办法将其拆分为:

var base = 2; //or even "2", this is also helpful since it can be parsed

var exponent = 4;

我已经在互联网上搜索了msdn Standard Numeric Format Strings也,但我找不到解决这个问题的办法。

最佳答案

您可以添加数字到上标数字之间的映射,然后从源中选择所有数字(这将是 base)和所有其他数字 - exponent

const string superscriptDigits = "⁰¹²³⁴⁵⁶⁷⁸⁹";
var digitToSuperscriptMapping = superscriptDigits.Select((c, i) => new { c, i })
.ToDictionary(item => item.c, item => item.i.ToString());

const string source = "23⁴⁴";

var baseString = new string(source.TakeWhile(char.IsDigit).ToArray());
var exponentString = string.Concat(source.SkipWhile(char.IsDigit).Select(c => digitToSuperscriptMapping[c]));

现在您可以将baseexponent 转换为int。此外,您还需要在执行转换代码之前验证输入。


甚至没有映射:

var baseString = new string(source.TakeWhile(char.IsDigit).ToArray());
var exponentString = string.Concat(source.SkipWhile(char.IsDigit).Select(c => char.GetNumericValue(c).ToString()));

关于c# - 将指数数字符串表示形式拆分为幂和指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38239134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com