在c#中怎么分离数字和运算符?
解决方案 »
- |ZYCWPF| 在System.Windows.Interactivity,Binding用RelativeSourceFindAncestor会错乱,有示例
- 各位给推荐一下winform方面的书籍
- 导出为EXCEL表后页面就关闭了?
- 属性“MS_POSITIONING”不是元素“body”的有效属性?
- 如何用c#开发标准的windows动态链接库?
- 如何将字符串"1"转化为字符串"00000001",即转化为8位的
- 怎么根据一个数据库里的一张表,动态生成一个树型菜单。表字段格式如下。。。(谢谢了,急,在线等)
- 【请问】c#里有什么简单的发声音的方式?比如vb里面的beep
- C# 程序执行时间长导致界面白屏
- 如何实现一个“标尺”?
- 请高手指点 进制转换
- C# Viusal Studio 2008 怎么使用画笔画刷
把你表达式用char [] 接收
循环判断
http://irony.codeplex.com/
已经默认实现了一些基本表达式的解析(同时还包含C#,sql,javascript等语言的简单解析),如果你需要更复杂的可以自己定制他个token规则ps:实际上BNF范式配合antir,yacc也是一样可以解析的。
char[] kk = a.ToCharArray();
string pa =@"[0-9]"; for(int g=0;g<kk.Length;g++)
{
if (Regex.IsMatch(kk[g].ToString(), pa))
{
//数字
}
else
{
//非数字
}
}
下面这个是网上找的个动态编译的 ,大致就是这意思
你可以看下
要用到C#的编译器、反射功能,自己瞧着去吧using System;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;public class Example
{
static void Main()
{
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameter = new CompilerParameters();
parameter.ReferencedAssemblies.Add("System.dll");
parameter.GenerateExecutable = false;
parameter.GenerateInMemory = true; CompilerResults result = provider.CompileAssemblyFromSource(parameter,
CreateCode("256*56*(145+56.0*254/345)"));//将你的式子放在这里
if (result.Errors.Count > 0)
{
Console.WriteLine("动态编译出错了!");
}
else
{
Assembly assembly = result.CompiledAssembly;
Type AType = assembly.GetType("ANameSpace.AClass");
MethodInfo method = AType.GetMethod("AFunc");
Console.WriteLine(method.Invoke(null, null));
}
Console.Read();
}
static string CreateCode( string para)
{
return "using System; namespace ANameSpace{static class AClass{public static object AFunc(){return "+para+";}}}";
}
}
int output = 0;
bool isNumeric = int.TryParse(value, out output);如果是浮点型 也可以用double
http://topic.csdn.net/u/20100617/10/b7ca5dae-3ad9-4d1b-94a9-7aa14d85a8a6.html
{
try
{
int zz = int.Parse(textBox1.Text[i].ToString());
label5.Text += zz.ToString();
}
catch
{
label5.Text += textBox1.Text[i].ToString();
}
}
{
try
{
int zz = int.Parse(textBox1.Text[i].ToString());
label1.Text += zz.ToString();
}
catch
{
label2.Text += textBox1.Text[i].ToString();
}
}
{
try
{
int zz = int.Parse(textBox1.Text[i].ToString());
label1.Text += zz.ToString();
}
catch
{
label2.Text += textBox1.Text[i].ToString();
}
}这段代码跟把表达式里的运算符和数字分离有什么关系吗?
char[] kk = a.ToCharArray();
string pa =@"[0-9]"; for(int g=0;g<kk.Length;g++)
{
if (Regex.IsMatch(kk[g].ToString(), pa))
{
//数字
}
else
{
//非数字
}
}这段代码是不是加什么头文件的,visual studio2005里发生错误
String pattern = @"[^0-9]";
Regex re = new Regex(pattern);
Match m;
StringBuilder builder = new StringBuilder();
for (m = re.Match(str); m.Success; m = m.NextMatch())
{
builder.Append(m.ToString());
str = str.Replace(m.ToString(), " ");
}
Console.Write(str);//1 2 3 4 10 99 21
Console.WriteLine("");
Console.Write(builder.ToString());//+-*=+-
Console.Read();