substring 函数

来源:互联网 发布:php utf8转换为gbk 编辑:程序博客网 时间:2024/05/29 16:41

返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。

 

 string substring(string, number, number?)

   备注

该字符串中的每个字符都被认为具有数字位置:第一个字符的位置是 1,第二个字符的位置是 2,依此类推。

 

如果未指定第三个参数,将返回从第二个参数指定的位置开始直到字符串结尾的子字符串。

 

如果参数不是字符串类型,将先使用string() 函数转换为字符串,然后计算该转换的结果。

 

Caution note警告

作为参数传递给此函数的节点集的字符串转换可能会产生意外的结果。有关更多信息,请参见 string 函数。

 

此函数区分大小写。

 

   示例

以下函数调用返回“234”:

 

substring("12345",2,3)

 

以下函数调用返回“2345”:

 

substring("12345",2)

 

返回的子字符串包含如下字符:字符位置大于或等于第二个参数的舍入值,且如果指定了第三个参数,小于第二个和第三个参数的舍入值之和。上面使用的比较和加法遵循 IEEE 754 标准规则;如同调用 round() 函数一样进行舍入。

 

下列示例阐释异常情况。

 

substring("12345",1.5, 2.6) 返回“234”

 

substring("12345",0, 3) 返回“12”

 

substring("12345",0 div 0, 3) 返回 ""

 

substring("12345",1, 0 div 0) 返回 ""

 

substring("12345",-42, 1 div 0) 返回 "12345"

 

substring("12345",-1 div 0, 1 div 0) 返回 ""

 

该示例演示前一个 substring()表达式。

以设计模式中的“解释器模式”中的“表达式类”为例进行说明:

<pre name="code" class="csharp">//表达式    abstract class Expression    {        //解释器        public void Interpret(PlayContext context)        {            if (context.PlayText.Length == 0)//如果乐谱长度为0            {                return;//返回到初始状态            }            else            {                string playKey = context.PlayText.Substring(0, 1);//playKey的值是乐谱PlayText的第一个字符                context.PlayText = context.PlayText.Substring(2);//新的PlayText的内容是本条PlayText从第2个字符往后的全部字符串                double playValue = Convert.ToDouble(context.PlayText.Substring                    (0, context.PlayText.IndexOf(" ")));//括号由内之外一次表示://转换成double型(PlayText从第(PlayText中(空格)的索引值)个数开始,之后的全部字符串)                context.PlayText = context.PlayText.Substring                    (context.PlayText.IndexOf(" ") + 1);//同上,但是索引值要+1                Excute(playKey, playValue);            }        }        //执行        public abstract void Excute(string key, double value);    }



2 0
原创粉丝点击