【发布时间】:2015-01-08 21:59:32
【问题描述】:
我在将十进制数从字符串保存到数组的一个元素时遇到问题。示例:我想将 String=" 5.2/2" 保存到字符串数组 [0]="5.2" [1]="2" 这里的问题是用户可以写数字之间的所有内容,程序将忽略它。 ..
这是我的储蓄号码计划。 现在它将 5.2 保存为 52...
static string[] saving_numbers(string string_undone)
{
string[] String_array = new string[string_undone.Length];
String_array[0] += string_undone[0];
int Help_index = 0;
for (int i = 1; i < string_undone.Length; i++)
{
if (string_undone[i] > 47 & string_undone[i] < 60)
{
if (string_undone[i-1] =='-' & Help_index==0)
{
Console.Write("Error: you gave us negative number which is not allowed!");
Main();
break;
}
if (string_undone[i - 1] < 46 | string_undone[i - 1] > 59 | string_undone[i - 1] == '/')
{
Help_index++;
String_array[Help_index] += string_undone[i];
}
else
{
String_array[Help_index] += string_undone[i];
}
}
}
return String_array;
}
我的程序必须找到这个“4 ^ 7 / 2.5 * 3.1”的答案我不知道我是瞎还是傻但我根本解决不了这个小问题
我不能使用像 String.Split() 或 Char.IsDigit 这样的东西......我只能使用基本函数,用于处理单独的符号和可以返回字符串长度的函数我可以使用 Convert.ToDouble我后来用它来将字符串元素转换成双精度
【问题讨论】:
-
解析表达式并不是那么小事
-
我不久前写了一个数学表达式解析器,如果你现在需要它:codeproject.com/Articles/274093/Math-Parser-NET
-
我不能使用任何库或任何东西...我只能使用基本的 .Net 函数 稍后将这些字符串数字或元素转换为可以使用的 Convert.ToDouble 的双精度数。
-
如果不是功课,不妨使用this
-
@Mike -- 你可以随时查看我的源代码,看看我是如何做到的,这样你就可以得到一些想法
标签: c# arrays string numbers decimal