Tag: stringtokenizer

C#Tokenizer – 保持分隔符

我正在努力将代码从JAVA移植到C#,而部分JAVA代码使用了tokenizer – 但我的理解是,Java中stringtokenizer生成的数组也会有分隔符(在这种情况下为+, – ,/,* ,(,))作为代币。 我试图使用C#Split()函数,但它似乎消除了分隔符本身。 最后,这将解析一个字符串并将其作为计算运行。 我做了很多研究,但没有找到关于这个主题的任何参考资料。 有谁知道如何让它们遇到的实际分隔符在split数组中? 令牌化代码: public CalcLexer(String s) { char[] seps = {‘\t’,’\n’,’\r’,’+’,’-‘,’*’,’/’,'(‘,’)’}; tokens = s.Split(seps); advance(); } 测试: static void Main(string[] args) { CalcLexer myCalc = new CalcLexer(“24+3”); Console.ReadLine(); } “24 + 3”将产生以下输出:“24”,“3”我正在寻找输出“24”,“+”,“3” 在完全公开的性质中,该项目是类分配的一部分,并使用以下完整的源代码: http://www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcParser.java.txt http://www.webber-labs.com/mpl/source%20code/Chapter%20Seventeen/CalcLexer .java.txt

将值数组发送到Oracle过程以在WHERE IN子句中使用

我在Oracle中有一个存储过程,如下所示: CREATE PROCEDURE MY_TEST_PROC( CUR OUT SYS_REFCURSOR, PARAM_THAT_WILL_BE _USED_INSIDE_WHERE_IN ) AS BEGIN OPEN CUR FOR SELECT * FROM MY_TABLE WHERE COL1 IN (here I want to put values received from C#) END; 在ASP.NET应用程序端,我有一个包含多个选项的select元素。 我想在WHERE子句中使用这些列表项。 我知道我可以在我的存储过程中有一个VARCHAR2输入参数,从列表项中创建一个逗号分隔的字符串,然后将其发送到过程。 这样做有两个问题: 我使我的网站容易受到SQL注入攻击 在我的存储过程中,我必须使用我想避免的EXECUTE(’SELECT …’)模式。 如何将这些列表项发送到存储过程并在WHERE IN子句中使用它们? 我正在使用ODP.NET并听说过UDT但不知道如何使用它。