本文主要是介绍substring 函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。
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);//同上,但是索引值要+1Excute(playKey, playValue);}}//执行public abstract void Excute(string key, double value);}
这篇关于substring 函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!