马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[ 本帖最后由 csharp 于 2014-4-28 07:36 编辑 ]\n\n[ 本帖最后由 csharp 于 2014-4-28 07:34 编辑 ]\n\n- [LispFunction("String_Split")]
- public static ResultBuffer StringSplit(ResultBuffer rb)
- {
- ResultBuffer result = new ResultBuffer();
- if (rb != null)
- {
- TypedValue[] values = rb.AsArray();
- if (values.Count() >= 2 && values[0].TypeCode == (int)LispDataType.Text)
- {
- ArrayList strArrayList = new ArrayList();
- for (int i = 1; i < values .Count( ); i++)
- {
- if (values[i].TypeCode == (int) LispDataType.Text)
- {
- strArrayList.Add(values[i].Value.ToString());
- }
- }
- string[] splitStrings = new string[strArrayList.Count];
- if (strArrayList.Count != 0)
- {
- for (int i = 0; i < strArrayList.Count; i++)
- {
- splitStrings[i] = strArrayList[i].ToString() ;
- }
- }
- String str = values[0].Value.ToString();
- String[] strings = str.Split(splitStrings , StringSplitOptions.RemoveEmptyEntries);
- foreach (string st in strings)
- {
- result.Add(new TypedValue((int)LispDataType.Text, st));
- }
- }
- else
- {
- return null;
- }
- }
- return result;
- }
命令: (string_split "123a12312a12b1312" "a" "b")
("123" "12312" "12" "1312")
命令: (string_split "123a12312a12b1312" "a")
("123" "12312" "12b1312")
命令: 指定对角点或 [栏选(F)/圈围(WP)/圈交(CP)]:
命令: (string_split "123a12312a12b1312" "")
("123a12312a12b1312")
命令: (string_split "123a12312a12b1312" )
nil
这个比Lisp弄的循环好用多了,如果不考虑错误处理代码要简单的多 |